JARファイル内のクラス、メソッド、プロパティなどを表示する最も簡単な方法は何でしょうか?非常に便利なLutz Roeder .NETリフレクター-Java用に相当するものを探しています
JARファイル内のクラス、メソッド、プロパティなどを表示する最も簡単な方法は何でしょうか?非常に便利なLutz Roeder .NETリフレクター-Java用に相当するものを探しています
回答:
JDKを使用jar -tf
すると、jar内のファイルが一覧表示されます。javap
特定のクラスファイルの詳細が表示されます。
tar
オプションが必須であるため、ハイフンは必要ありません。
C:\Program Files\Java\jdk<version>\bin
使用する前に、システムまたはユーザーのPATH環境変数に追加する必要がある場合がありますjar
。(<version>はjdkバージョンビルド番号です。チェックインC:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
私は通常7-Zipでそれらを開きます...少なくともパッケージとクラスとリソースを見ることができます。
メソッドやフィールドを表示する必要がある場合は、Jadを使用しますが、もちろん、(優れた)JavaDocを使用することをお勧めします...
さて、SOのどこかに、クラスが配置されているjarファイルを見つけるために、いくつかのEclipseプラグインが言及されました。
[編集] SOスレッドへの参照。何が尋ねられるのではなく、何らかの形で関連しているため、有用です。
私が個人的に使用しているのはJD-GUIです。それはあなたがソースコード、クラス、そしてクラス内のオブジェクトを見ることができ、左側のツリーメニューにファイル構造を見ることができるので、それは無料の「逆コンパイラ」です。ただし、クラスを直接変更することはできません。
JD-GUIのWebサイト:http : //jd.benow.ca/
誰かがこれをまだ知らない場合、JARファイルは、プログラムのクラス、リソースなどといくつかのメタデータを含む単なるZIPファイルです。1つを抽出して、どのように組み立てられるかを確認できます。
したがってunzip
、覚えやすく使いやすいコマンドを使用しています。
unzip -l <jar-file-name>.jar
たとえば、あなたが名前のjarファイルを持っている場合はtest.jar
、その後unzip -l test.jar
のjarファイルのすべてのコンテンツを一覧表示されます。
他のすべての答えは素晴らしいですが、ほとんどの場合、これらの大きなソフトウェアのいずれかを必要とせず、Linuxのデフォルトで提供されているようなソフトウェア7 zip
やJDK
Eclipseツールを使用する必要があります。 Macなので、非常に軽量で使いやすいです。
も使用できますzipinfo <your jar file>
。OSがこれをサポートしている場合。
IDEでプロジェクトにjarを追加すると、通常はメソッドとフィールド名を表示できますが、詳細な実装は表示できません。NetBeansはそれを行うことができます(おそらくEclipse、IntelliJなど)。IDE内で直接jar構造を参照できます。
コンテンツの表示など、何でも使用できます。
jar tvf jarfile.jar
ソースコードにアクセスするには、JADなどの逆コンパイラ、そのフロントエンドの1つ、または別の逆コンパイラを使用します。コードが難読化されている場合、...
Tom Hawtinの回答を拡張して、リストをパイプ処理して目的のクラスまたはファイルを除外できます。
jar tf my-fat-jar-file.jar | grep filename
これはbash / zshや類似のもの、またはemacsのeshellで動作するはずです。
追加情報:https : //docs.oracle.com/javase/tutorial/deployment/jar/view.html
WinRarを使用します。そのままフォルダ構造を開きます。パスを保持しながら、アーカイブ内の編集も可能です。
結局のところ、JARファイルはZIPアーカイブのみです。
内容を確認したい場合は、以下の最初のオプションとして名前を変更してください。
F2 & Rename to jarfile.zip
//任意の解凍を使用...
jar tvf jarfile.jar
jar tf jarfile.jar
私が正しく理解していれば、クラスだけでなく、メソッド、プロパティなども見たいと思います。私が知っている唯一のツールはEclipseです。プロジェクトのクラスパスにjarを追加すると、通常のパッケージエクスプローラーを使用して、メソッドとプロパティを持つそのクラスを参照できます。
とにかく、これは優れたスタンドアロンJavaツールの良いアイデアです。
まあ、jarファイルは単なるzipファイルなので、(お気に入りの解凍ユーティリティで)解凍すると、すべてのファイルが中に含まれます。
クラスファイルの内部を調べてメソッドを確認する場合は、そのためのツールが必要です。PhiLhoが言及しているように、Eclipseはそれを行うことができ(デフォルトで)、ほとんどのJava IDEはそれができると思います。
Eclipse 3.4では
ソースコードの表示も問題になる場合は、新しい質問を開いてください。
Jarファイルレベルのナビゲーション(zipファイルとして)には、7zipを使用しています。これは非常にうまく機能し、トラブルシューティングに最適なエントリを表示および編集できます。
これを行う1つの方法は、「パッケージエクスプローラー」でパースペクティブを開くことです。これを行うと、クラスの詳細でjarの構造を確認できます。これについては、パッケージエクスプローラーを使用してプロジェクトのライブラリフォルダーを確認してください。
ウィンドウ>>ビューを表示>>その他>> Java >>パッケージエクスプローラ
別の方法として、JarPlugをEclipseプラグインとして使用できます。これはeclipse / springsourceで動作します
最近、ほとんどの解凍ユーティリティでそれらを開くことができます。ソースを表示したい場合は、DJ Java Decompilerのようなものを入手してください。
Bndtoolsは、Eclipse用の無料のJARビューアプラグインを提供します。
Eclipse更新サイトを追加して、ビューアのみをインストールします。
私の要件は、jarを実際に抽出せずに、jar内のファイル(プロパティファイルなど)の内容を表示することでした。私のように誰かがこのスレッドに到達した場合は、このコマンドを試してください-
unzip -p myjar.jar myfile.txt
これは私にとってうまくいきました!
このジャーエクスプローラーで十分です。
JD、Procyon、Fernflowerの3つの逆コンパイラタイプをサポートします。
任意のJavaアーカイブ内のファイルと複製を検索できます。
また、ユーザーはD&Dファイルでjarを変更し、一部の非クラスファイルを編集できます。
JarExplorerまたはJarVisualizerを使用しています。
JarNavigatorを試して、jarファイルの内容を表示および検索できます。
また、Luiten-オープンソースのJavaデコンパイラーGuiを使用することもできます。