[解決済み】jarの中からリソースファイルを読み込む
2022-03-28 14:44:50
質問
jarの中からリソースを読み込みたいのですが、どのようにすればよいですか?
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferedReader 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を使用しており、私のファイルがあるフォルダはclassフォルダにあります。
どのように解決するのですか?
としてリソースをアドレス指定しようとするのではなく ファイル と聞けばいいだけです。 クラスローダー を返すように 入力ストリーム の代わりに、リソースに対して getResourceAsStream :
try (InputStream in = getClass().getResourceAsStream("/file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(in))) {
// Use resource
}
というように
file.txt
リソースがクラスパス上で利用可能であれば、この方法は
file.txt
リソースが
classes/
ディレクトリの中、または
jar
.
は
URI is not hierarchical
が発生するのは、jarファイル内のリソースのURIが以下のようになるためです。
file:/example.jar!/file.txt
. の中のエントリーは読めません。
jar
(a
zip
ファイル) のような、古い
ファイル
.
の回答でよく説明されています。
関連
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] ファイルへの追記はどのように行うのですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] 埋め込みリソーステキストファイルの読み方
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。