何時間もグーグルした後、これを完全に狂わせ始めました。サイトで質問のバリエーションも見ましたが、うまくいかないようです。 JFrameはiniファイルからデータを読み取る必要があり、そのファイルを開くメソッドを作成しました。このファイルは、jarファイル内のresourcesというフォルダーに保存されます。
private BufferedReader openIniFile(String filename){
BufferedReader brReader = null;
try{
File fileObj = new File(this.getClass().getResource("/resources/" + filename).toURI()); // The fileobject of the file to read
if(fileObj.exists())
brReader = new BufferedReader(new FileReader(fileObj));
} catch(Exception e){
System.err.println("Exception while opening file: " + e.getMessage());
}
return null;
}
もちろん、これはコンパイル後にコードを実行しているときは完全に機能しますが、.jarファイルにエクスポートされた後に例外をスローします。 InputStream、FileInputStreamの使用を検討しましたが、機能するソリューションが見つからないようです。
Jarファイルにリソースを認識させるにはどうすればよいですか?
リソースがJARファイルにある場合、それはもはやファイルではありません。ファイルは、ファイルシステム上の単なる物理ファイルです。解決策: getResourceAsStream を使用します。このようなもの:
new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/resources/" + filename)))
ファイルを間違って読んでいます。ファイルがJARにある場合、File
クラスを使用することはできません。代わりに、getResourceAsStream()
を使用してファイルにInputStream
を取得する必要があります。
InputStream in = this.getClass().getResourceAsStream("/resources/" + filename);