0
自分のクラスと同じレベルの設定ファイルを読めない理由がわかりません。私は以下の両方のコードを試しましたが、両方の入力ストリームがnullです。設定ファイルを読み込み、クラスと同じディレクトリを返します。null
public MyClass
public void getConfigurations()
{
String fileName = "myFile.conf";
InputStream in = this.getClass().getResourceAsStream(fileName);
InputStream inNew = this.getClass().getClassLoader().getResourceAsStream(fileName);
System.out.println(in);
System.out.println(inNew);
}
public static void main(String[] arg){
MyClass myClass = new MyClass();
myClass.getConfigurations();
}
}
出力は次のようになります。ここでは
が私のディレクトリ
MyProject
-src
-com
-test
-MyClass.java
-myFile.conf
-lib
ある
null
null
私はそれが両方で仕事したいと思いますので、実行可能なjarファイルにこのクラスをパッケージ化するつもりです窓とLinux。 jarファイルをパッケージ化するときに、設定ファイルを自分のクラスと同じレベルにします。
私は何かを見逃しましたか?
あなたはコードを実行しますか?あなたのconfファイルは_java_ファイルと同じディレクトリにあります。しかし、コンパイルされた_class_ファイルにもコピーされていますか? – dpr
私は、configファイルなどのリソースを探しているときにあなたのconfファイルをresourcesフォルダに入れるべきだと思います。あなたのケースではどこにあるべきかは本当に決めることができませんが、 "古典的な"構造では、javaクラスのsrc/main/javaとconfigファイルのsrc/main/resourcesのようになります。 –
私はリソースフォルダを使用していません...クラスから読みたいだけでした。自分のクラスから設定ファイルに入力ストリームを開くことができるかどうかを確認しています –