2

こんにちはすべて私はエラーが発生しています

Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at richard.fileupload.FileUploadController.loadProp(FileUploadController.java:48)
    ... 60 more

私のプロパティクラスが呼び出されるときはいつでも、これはコードです

 private Properties configProp = new Properties();

    @PostConstruct
    public void loadProp() {
        System.out.println("Loading properties");
        InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
        try {
            configProp.load(in);
            System.out.println(configProp.getProperty("destinationPDF"));
            System.out.println(configProp.getProperty("destination"));
            System.out.println(configProp.getProperty("fileList"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private String destinationPDF = configProp.getProperty("destinationPDF");
    public String destination = configProp.getProperty("destination");
    private String username;

エラーはこの行から来ているようです:

InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
        try {
            configProp.load(in);

このエラーの原因とその解決方法を教えてください。

上記のコードは、プロパティファイルをポイントし、そこから3つの変数値を取得する必要がありますが、

System.out.println(configProp.getProperty("destinationPDF"));
System.out.println(configProp.getProperty("destination"));
System.out.println(configProp.getProperty("fileList

エラーが発生する前に

これは私のディレクトリ構造です

ここに画像の説明を入力してください

プロパティファイルがresources/にあることがわかるように、これへのリンクを取得するにはどうすればよいですか?

編集 :

わかりました。ファイルへの完全なリンクで完全に正常に機能します。

configProp.load(new FileInputStream("D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/WEB-INF/config.properties"));

しかし、ファイルをプロジェクトのどこに置いても、まったくロードできません。これはなぜですか?

4

1 に答える 1

3

この行は意味がありません:

this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties")

ClassLoader.getResourceAsStream()ルートパッケージから始まるパッケージパスを使用して、クラスパスからリソースをロードします。そして、ルートパッケージの上には何もありません。

于 2013-02-16T17:39:48.817 に答える