は、私は、メインクラスに次のパス構造を有する:クラスフォルダの外からjavaのプロパティファイルを読み取る方法は?
D:/java/myapp/src/manClass.java
をし、私はプロパティは、ファイル名といくつかの他の構成を含んでいます
D:/java/myapp/config.properties
にファイルを入れたいです。 file=file_to_read.txt
プロパティは、最初のファイルからこのfile_to_read.txt
がD:/java/myapp/folder_of_file/
に配置されます
メインクラスは、ファイル名を読み取り、その後、内容がファイルを形成し得る:私は、プロパティは、このようなファイルにファイル名を設定します。
config.properties
とfile_to_read.txt
の両方がのsrc/
にある場合、これを行うことができます。しかし、私がそれをしたいと思うように成功することはできませんでした。
誰でも私にこれを手伝ってもらえますか?上記の同じ内部構造を持つドライブ内の任意の場所にmyapp
フォルダを配置したい場合、私は何ができるのか、あなたの提案が必要です。プログラムは正しく動作します。
プロジェクトを作成した後に作成されたjarファイルからジョブを実行したい場合は、問題なく実行できますか?
だけでプロパティファイルを読み取るために、次のように私は試してみた:
URL location = myClass.class.getProtectionDomain().getCodeSource().getLocation();
String filePath = location.getPath().substring(1,location.getPath().length());
InputStream in = myClass.class.getResourceAsStream(filePath + "config.properties");
prop.load(in);
in.close();
System.out.println(prop.getProperty("file"));
しかし、プロパティファイルからのgetPropertyにしようとしたとき、これはERRを与えます。 ありがとう!
はい、BalusCの最初のソリューションを使用してください。 – Klinetel
ありがとう、それは私のために働いた。しかし、私はコメントを追加する必要があります。クラスパスにフォルダを追加すると、リソースをストリームとして取得するときにフォルダを指定する必要はなく、そのファイルが呼び出されたフォルダ内にある場合でもgetResourceAsStream( "/ config.properties")を呼び出すだけですresources –
@Jesus:はい、それはすでに(デフォルト)クラスパスにある他のすべてのフォルダと同じ方法でフォルダの内容を使用することを意図しています。 – BalusC