ホームページ >Java >&#&チュートリアル >Java で JAR ファイル内のファイルをリストするにはどうすればよいですか?

Java で JAR ファイル内のファイルをリストするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 13:50:101024ブラウズ

How Can I List Files Inside a JAR File in Java?

JAR ファイル内のファイルのリスト

Java では、listFiles() メソッドを使用してディレクトリ内のファイルのリストを取得できます。 。ただし、JAR ファイルに直接適用してその内容を取得することはできません。

これを実現するには、Java の CodeSource クラスを利用できます:

CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
  URL jar = src.getLocation();
  try (ZipInputStream zip = new ZipInputStream(jar.openStream())) {
    while (true) {
      ZipEntry e = zip.getNextEntry();
      if (e == null) {
        break;
      }
      String name = e.getName();
      if (name.startsWith("path/to/your/dir/")) {
        // Process the entries within the specified directory.
      }
    }
  } catch (IOException ex) {
    // Handle I/O exceptions.
  }
} else {
  // Handle the case where no CodeSource is available.
}

注:

  • ZipInputStream は JAR ファイルを ZIP として読み取りますarchive.
  • ZipEntry クラスは、JAR ファイル内の個々のエントリ (ファイル) を表します。
  • getNextEntry() メソッドは、JAR ファイル内の次のエントリを取得し、その内容を反復処理できるようにします。

Java 7機能強化:

Java 7 以降では、FileSystems.newFileSystem() メソッドを使用して、JAR ファイルから直接 FileSystem オブジェクトを作成できます。これにより、NIO のディレクトリ ウォーキングおよびフィルタリング メカニズムを使用して JAR ファイルのコンテンツにアクセスできるようになり、JAR と「展開された」ディレクトリの両方をより簡単に処理できるようになります。

以上がJava で JAR ファイル内のファイルをリストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。