JAR アーカイブを使用する場合の一般的なタスクの 1 つは、JAR アーカイブに含まれるファイルのリストを表示することです。これは、特定のファイルの抽出やアーカイブの内容のインベントリの作成など、さまざまな目的に役立ちます。
Java は、ZIP ファイルを処理するための広範なクラスのセットを提供します。 JAR アーカイブを含む。 ZipInputStream クラスを使用すると、JAR ファイル内のエントリを反復処理し、そのメタデータにアクセスできます。
JAR 内のファイルを一覧表示するには、次の手順に従います。
次のコードは、すべてのエントリをリストする例を示しています。 JAR 内のファイル:
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); ZipInputStream zip = new ZipInputStream(jar.openStream()); while (true) { ZipEntry e = zip.getNextEntry(); if (e == null) { break; } System.out.println(e.getName()); } } else { System.out.println("JAR not found"); }
Java 7 では、ZIP ファイルの操作プロセスを簡素化する新機能が導入されました。 FileSystem クラスを使用すると、ZIP ファイルを読み取り専用ファイル システムとしてマウントできます。これにより、標準 Java I/O ライブラリを使用して、JAR ファイルの内容に移動して一覧表示できるようになります。
次のコードは、FileSystem クラスを使用して JAR 内のファイルを一覧表示する例を示しています。
Path jarPath = Paths.get("/path/to/my.jar"); FileSystem fs = FileSystems.newFileSystem(jarPath, null); Path root = fs.getPath("/"); Files.walk(root) .filter(path -> path.toString().startsWith("path/to/your/dir/")) .forEach(System.out::println);
このコードは、ファイルとディレクトリを操作するための高レベル API を提供する Files クラスを使用して、JAR ファイルのルート ディレクトリを調べ、ファイルをフィルタリングして除外します。希望の基準と一致しません。
以上がJava を使用して JAR ファイル内のファイルをリストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。