JAR ファイルの内容の探索: 埋められたファイルを明らかにする
ローカル ファイル システム上のディレクトリを横断するのは簡単な作業ですが、 JAR ファイルの深さを理解するのは困難に思えるかもしれません。この記事では、JAR アーカイブ内のファイルへのアクセスの複雑さについて詳しく説明します。
ファイル構造の分析
JAR ファイルは、ZIP アーカイブと同様に、複数のファイルを 1 つにバンドルします。実在物。 JAR ファイルの階層構造を理解することが重要です。 JAR ファイルは次のような構成になっている可能性があります:
my.jar!/Main.class my.jar!/Aux.class my.jar!/Other.class my.jar!/images/image01.png my.jar!/images/image02a.png my.jar!/images/imwge034.png my.jar!/images/imagAe01q.png my.jar!/META-INF/manifest
JAR ファイルのアイデンティティの検出
JAR ファイルを探索する鍵は、その場所を知ることにあります。提供されているコード スニペットから秘密が明らかになります。
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); ... }
JAR ファイルの場所がわかったので、その内容に踏み込むことができます。
JAR ファイルの迷路をたどる
ZipInputStream クラスを使用すると、JAR の深部を調べることができますfile:
ZipInputStream zip = new ZipInputStream(jar.openStream()); while(true) { ZipEntry e = zip.getNextEntry(); if (e == null) break; String name = e.getName(); ... }
ループ内では、各 ZipEntry は JAR ファイル内のファイルまたはディレクトリを表します。エントリの名前を検査することで、特定のパターンを持つファイル、または特定のパス内にあるファイルを識別できます。
JAR ファイルのコンテンツの移動
JAR ファイル内の目的のファイルが識別されると、その内容の読み取りや特定のファイルへの抽出などのアクションを実行できます。
結論
上で概説したテクニックをマスターすると、JAR ファイルの内部動作をナビゲートして簡単に操作できるようになり、アプリケーションのリソース管理の可能性が無限に広がります。 .
以上がJAR ファイルの内容にアクセスして移動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。