1

ここに私のディレクトリ構造
XYZProject があります

  • 建てる
  • 距離
  • nbproject
  • ソース

私はネットビーンズに取り組んでいます。
これで、ABC.txt というファイルが
できました。これを jar ファイルにパックします。
ここで、次のことを行いました。ソース パッケージの下に Resources という名前の新しいフォルダーを作成し、その中にファイル ABC.txt を配置しました。

XYZプロジェクト

-- src  
  |
  -- Resources  
     |
     -- ABC.txt

ここで、ファイルの場所に関係なく、このファイルにアクセスしたいと考えています。だから私はいくつかのチュートリアルに従って、これをやった、

URL url = XYZProject.class.getClassLoader().getResource("Resources/ABC.txt");
String urlStr = urlStr.getFile().replaceAll("%20", " ");
System.out.println(urlStr);
BufferedReader reader;
try {
    reader = new BufferedReader(new FileReader(urlStr)); .....
} catch (FileNotFoundException e) {...}

これは、netbeans、つまり F6 と tada WORKS を介してコードを実行しているときに機能します!!!
しかし、jar を実行しようとすると、ファイルが見つかりません。FileNotFoundException がスローされ
ます netbeans および java -jar を介して実行されている jar 内のテキスト ファイルにアクセスするにはどうすればよいですか?
また、取得した URL にスペースの代わりに %20 がある理由もわかりません。

VIA NB を実行している出力

/D:/.../.../.../.../XYZProject/build/classes/Resources/ABC.txt  

VIA java -jar を実行している出力

file:/D:/.../.../.../.../XYZProject/dist/XYZProject.jar!/Resources/ABC.txt
4

1 に答える 1

1

Jar 内のリソースFile. URLまたはからアクセスする必要がありますInputStream

私はおそらくURL-> InputStream-> InputStreamReader->を使用するでしょうBufferedReader(メモリから、テストされていません)。

于 2012-10-14T11:29:49.573 に答える