私のjar内から次のようにリソースを読みたいのですが:
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferredReader reader = new BufferedReader(new FileReader(file));
//Read the file
Eclipseで実行すると問題なく動作しますが、jarにエクスポートすると、IllegalArgumentExceptionが発生します。
Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical
理由は本当にわかりませんが、いくつかのテストで変更した場合に見つかりました
file = new File(getClass().getResource("/file.txt").toURI());
に
file = new File(getClass().getResource("/folder/file.txt").toURI());
次に、逆に機能します(jarでは機能しますが、Eclipseでは機能しません)。
私はEclipseを使用しており、ファイルを含むフォルダーはクラスフォルダーにあります。
getResourceAsStream
この問題に対するより簡単で移植性の高い解決策であると私は信じています。