[解決済み] jarファイルからリソースフォルダ内のフォルダにアクセスするには?
2022-04-28 21:13:27
質問
プロジェクトのルートにリソースフォルダ/パッケージがありますが、特定のファイルを読み込まないようにしたいです。もし、特定のファイルをロードしたいのであれば、class.getResourceAsStreamを使用すれば問題ないでしょう! 私が実際にやりたいことは、resources フォルダ内の "Folder" をロードし、そのフォルダ内のファイルをループして、各ファイルのストリームを取得して内容を読み込むことです... ファイル名は実行前に決定されないと仮定してください... どうすればいいのでしょうか?jar FileのFolder内のFilesのリストを取得する方法はありますか? リソースを含むjarファイルは、コードが実行されるのと同じjarファイルであることに注意してください...
解決方法は?
やっと、解決策が見つかった。
final String path = "sample/folder";
final File jarFile = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
if(jarFile.isFile()) { // Run with JAR file
final JarFile jar = new JarFile(jarFile);
final Enumeration<JarEntry> entries = jar.entries(); //gives ALL entries in jar
while(entries.hasMoreElements()) {
final String name = entries.nextElement().getName();
if (name.startsWith(path + "/")) { //filter according to the path
System.out.println(name);
}
}
jar.close();
} else { // Run with IDE
final URL url = Launcher.class.getResource("/" + path);
if (url != null) {
try {
final File apps = new File(url.toURI());
for (File app : apps.listFiles()) {
System.out.println(app);
}
} catch (URISyntaxException ex) {
// never happens
}
}
}
2番目のブロックは、IDE上でアプリケーションを実行したときにのみ動作します(jarファイルでは動作しません)ので、それが気に入らない場合は削除してください。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] build.gradle ファイルにローカルの .jar ファイルの依存関係を追加するにはどうすればよいですか?
-
[解決済み] 実行中のJARファイルのパスを取得する方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
org.glassfish.jersey.servlet.ServletContainer
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み] JARファイル内のファイルを一覧表示するには?