jar ファイル内のクラス、メソッド、プロパティなどを表示する最も簡単な方法は何ですか? 非常に便利なLutz Roeder .NET Reflector - for Javaに相当するものを探しています
31 に答える
JDKを使用してjar -tf
、jar内のファイルを一覧表示します。javap
特定のクラスファイルから詳細を取得します。
私は通常、7-Zip でそれらを開きます...少なくともパッケージ、クラス、およびリソースを表示できます。
メソッドやフィールドを表示する必要がある場合は、Jad を使用しますが、もちろん、(良い) JavaDoc に依存する方がよいでしょう...
さて、SO のどこかでいくつかの Eclipse プラグインが言及されました。クラスが配置されている jar ファイルを見つけるために、おそらくもっと多くのことができます (つまり、あなたが要求したこと)。
[編集] SOスレッドへの参照。質問された内容ではありませんが、何らかの形で関連しているため、便利です。
私が個人的に使っているのはJD-GUIです。これは、ソース コード、クラス、およびクラス内のオブジェクトを確認できるだけでなく、左側のツリー メニューでファイル構造を確認できる無料の「逆コンパイラ」です。ただし、クラスを直接変更することはできません。
JD-GUI の Web サイト: http://jd.benow.ca/
WinRar を使用します。そのままの方法でフォルダー構造を開きます。パスを保持しながら、アーカイブ内編集も可能です。
結局、JAR ファイルは ZIP アーカイブのみです。
中身を見たい場合は、以下の最初のオプションとして名前を変更してください..
F2 & Rename to jarfile.zip
//任意の解凍ツールを使用...jar tvf jarfile.jar
jar tf jarfile.jar
私の理解が正しければ、クラスだけでなく、メソッド、プロパティなども見たいと思うでしょう。私が知っている唯一のツールは Eclipse です。プロジェクトのクラスパスに jar を追加すると、通常のパッケージ エクスプローラーを使用してメソッドとプロパティでそのクラスを参照できます。
とにかく、これは優れたスタンドアロン Java ツールの良い考えです。
Jad は不格好で、もはやメンテナンスされていません。洗練された UI と新しい言語機能のサポートを備えた"Java Decompiler"に切り替えました。
ただし、私が使用したすべての逆コンパイラは、正常に逆コンパイルできないコードに遭遇します。それらについては、標準の JDK ツールであるjavapによって生成される逆アセンブルされた Java バイト コードを理解することが役立ちます。
これを行う 1 つの方法は、「パッケージ エクスプローラー」でパースペクティブを開くことです。これを行うと、jar の構造とクラスの詳細を確認できます。これを行うには、パッケージ エクスプローラーを使用してプロジェクトのライブラリ フォルダーを確認します。
ウィンドウ>>ビューの表示>>その他>>Java>>パッケージエクスプローラー
もう 1 つの方法は、JarPlug を Eclipse プラグインとして使用することです。これはEclipse / springsourceで機能します
Windows で PowerShell を使用していて、jar 内のファイルを探している場合は、次のことができます。
jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
Eclipse 3.4では
- 問題の jar ファイルを Java プロジェクトにドラッグします。jar ファイルのコピーが表示されます。
- jar ファイルを右クリックし、[ビルド パス] -> [ビルド パスに追加] を選択します。
- Jar ファイルは「参照ライブラリ」ノードに移動され、プロジェクト エクスプローラー ペインで開いてナビゲートできます。
ソースコードを見ることも問題である場合は、新しい質問を開いてください。
Jar ファイル レベル (zip ファイルとして) でのナビゲーションには、7zip を使用します。これは非常にうまく機能し、エントリの表示と編集が可能で、トラブルシューティングに最適です。
jar ファイルは単なる zip ファイルなので、(お好みの解凍ユーティリティを使用して) 解凍すると、内部のすべてのファイルが取得されます。
メソッドを確認するためにクラス ファイルの内部を調べたい場合は、そのためのツールが必要になります。PhiLho が言及しているように、Eclipse は (デフォルトで) それを行うことができ、ほとんどの Java IDE はそれが可能であると思います。
私の要件は、jar を実際に抽出せずに、jar 内のファイル (プロパティ ファイルなど) の内容を表示することでした。誰かが私と同じようにこのスレッドにたどり着いた場合は、次のコマンドを試してください -
unzip -p myjar.jar myfile.txt
これは私にとってはうまくいきました!
最近のほとんどの解凍ユーティリティでそれらを開くことができます。ソースを表示したい場合は、DJ Java Decompilerなどを入手してください。
ここからダウンロードできる Java Decomplier が最適なオプションだと思います: http://jd.benow.ca/
エクリプス 3.4 JDT
最初に日食にドラッグする必要があるため、これは最速の方法ではありません。ただし、逆コンパイルが有効になっていても、完全な Java クラスのブラウジングができます。
Windows のデフォルト アクションを「WinZip で開く」に設定しました。これにより、JAR をアーカイブとして簡単に管理できます。ファイルを手動で追加/削除することもできます。
私はJAR Browserを好みます。これには、複数の JAR を参照し、複数の JAR で特定のクラスを同時に検索できるシンプルなインターフェイスがあります。
Mac にはJarzillaがあります
JarExplorer またはJarVisualizerを使用します。
JarSpyを試すことができます。私が使用している IDEA プラグイン バージョンがあります。
java -xf some-j.jar
JARファイルを解凍します。
ほとんどの人がこれに正しく答えています。jar パスがどこにあるかさえわからない場合、または各ホストで JDK パスが異なる場合の Linux の 1 つの解決策は次のとおりです。
$(find / -type f -name "jar" 2>&1 |grep '/JDK' |head -1 ) tf FULLY_QUALIFIED_NAME_TO_YOUR_FILE
IDE もこれをサポートする必要があります。私の IDE (SlickeEdit) では、これを「タグ ライブラリ」と呼んでいます。jar ファイルのタグ ライブラリを追加するだけで、クラスとメソッドを階層的に参照できるようになります。