プロパティファイルをロードしようとしています。ここに私の構造は、今私はtest.propertiesファイルをロードしようとしていますgetResourceAsStream()はnullを返します。プロパティファイルがロードされていません
です。しかし、私はnullになっています。ここではどのように私は
public class Test {
String workingDir = System.getProperty("user.dir");
System.out.println("Current working directory : " + workingDir);
File temp = new File(workingDir + "\\" + "test.properties");
String absolutePath = temp.getAbsolutePath();
System.out.println("File path : " + absolutePath);
Properties properties = null;
try {
properties = new Properties();
InputStream resourceAsStream = Test.class.getClassLoader().getResourceAsStream(absolutePath);
if (resourceAsStream != null) {
properties.load(resourceAsStream);
}
} catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
} //end of class Test
このプログラムプリント
Current working directory : D:\Personal Work\eclipse 32 Bit\workspace\Spring Integration\LS360BatchImportIntegration
File path : D:\Personal Work\eclipse 32 Bit\workspace\Spring Integration\LS360BatchImportIntegration\test.properties
をしています。しかし、性質がこのパスからファイルをロードしていません。そこには存在しますが。なぜ私はnullになっていますか?
おかげ
編集--- ----------------------------
String workingDir = System.getProperty("user.dir");
System.out.println("Current working directory : " + workingDir);
File temp = new File(workingDir, "test.properties");
String absolutePath = temp.getAbsolutePath();
System.out.println("File path : " + absolutePath);
try {
properties = new Properties();
InputStream resourceAsStream = new FileInputStream(temp);
if (resourceAsStream != null) {
properties.load(resourceAsStream);
}
} catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
Current working directory : D:\Personal Work\eclipse 32 Bit\workspace\Spring Integration\LS360BatchImportIntegration
File path : D:\Personal Work\eclipse 32 Bit\workspace\Spring Integration\LS360BatchImportIntegration\test.properties
java.io.FileNotFoundException: D:\Personal Work\eclipse 32 Bit\workspace\Spring Integration\LS360BatchImportIntegration\test.properties (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at com.softech.ls360.integration.BatchImport.main(BatchImport.java:57)
はい私は 'test.proeprties'ファイルを間違った場所にコピーしています。正しい場所に置いた後、ストリームからロードしています:)。はい、私はmavenを使用しています。プロパティファイルを 'src/main/resources'フォルダに移動することを意味します。そしてあなたが言ったように(クラス2)、右クリックして 'src/main/resources'フォルダをクラスパスに追加しますか? – Basit
'src/main/resources'はすでにクラスパス上にあると思います。 – Basit
@Basit:まさに。 "src/main/resources"は、そのようなリソースのMavenのデフォルトディレクトリです。 Mavenを使用してアプリケーションをパッケージ化すると、自動的に考慮されます(そしてJARの一部になります)。 Eclipseでプロジェクトを実行すると、M2Eプラグインがそれを処理します。 – Seelenvirtuose