Jarファイル内のクラス、メソッド、プロパティなどを表示する最も簡単な方法は何ですか?私は非常に便利なものと同等のものを探しています ルッツローダー.NET Reflector - Javaの場合
JDKを使用すると、jar -tf
はjar内のファイルをリストします。 javap
は特定のクラスファイルからより多くの詳細をあなたに与えるでしょう。
私は通常7-Zipでそれらを開きます...それは少なくともパッケージとクラスとリソースを見ることを可能にします。
メソッドやフィールドを見る必要がある場合は、Jadを使用しますが、もちろん、(優れた)JavaDocに頼ることをお勧めします。
さて、クラスがどのjarファイルに配置されているのかを見つけるために、SOのどこかにEclipseプラグインについて言及しました。
[編集] SO threadへの参照。 Java:クラス名が与えられたときにどのjarファイルを使うべきかをどうやって知るのですか?
私が個人的に使用しているのはJD-GUIです。それはあなたがそれがあなたがクラス内のソースコード、クラス、そしてオブジェクトを見ることを可能にし、そして左側のツリーメニューの中でファイル構造を見ることを可能にするので、それは無料の '逆コンパイラ'です。ただし、クラスを直接変更することはできません。
JD-GUIのウェブサイト: http://jd.benow.ca/
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アーカイブのみです。
たとえばunzip -l <jar-file-name>.jar
を使用すると、test.jar
という名前のjarファイルがある場合、unzip -l test.jar
はそのjarファイルの内容を一覧表示します。
オプション-lを指定したunzip
コマンドのマニュアルに従って。
アーカイブファイルを一覧表示する(短い形式)。指定されたファイルの名前、圧縮されていないファイルサイズ、および変更日時が、指定されたすべてのファイルの合計とともに印刷されます。 UnZipが定義されたOS2_EASでコンパイルされた場合、-lオプションは格納されているOS/2拡張属性(EA)とOS/2アクセス制御リスト(ACL)のサイズの列もリストします。さらに、zipファイルのコメントと個々のファイルのコメント(ある場合)が表示されます。ファイルがシングルケースファイルシステム(たとえば、古いMS-DOS FATファイルシステム)からアーカイブされていて、-Lオプションが指定されている場合、ファイル名は小文字に変換され、先頭にキャレット(^)が付きます。
zipinfo <your jar file>
を使うこともできます。あなたのOSがこれをサポートしていれば。
中身を見たい場合は、以下の最初のオプションとして名前を変更してください。
F2 & Rename to jarfile.Zip
//解凍したものを使用...
jar tvf jarfile.jar
jar tf jarfile.jar
私が正しく理解しているならば、あなたはクラスだけでなくメソッド、プロパティなども見たいです。私が知っている唯一のツールはEclipseです - プロジェクトのクラスパスにjarを追加すれば、通常のパッケージエクスプローラーを使ってメソッドとプロパティを使ってそのクラスを閲覧することができます。
とにかく、これは良いスタンドアロンJavaツールのための良い考えです
Jadは気味が悪いともはや維持されていません。私は "Java Decompiler" に切り替えました。これは滑らかなUIと新しい言語機能のサポートを持っています。
私が使用したすべての逆コンパイラは、しかし、それが正常に逆コンパイルされていないコードに実行されます。それらの人にとっては、標準のJDKツール javap によって生成された逆アセンブルされたJavaバイトコードを理解するのに役立ちます。
さて、jarファイルは単なるZipファイルなので、(あなたの好きな解凍ユーティリティを使って)解凍すると、中にあるすべてのファイルが手に入ります。
メソッドを見るためにクラスファイルの中を見たいのであれば、そのためのツールが必要です。 PhiLhoが述べているように、Eclipseは(デフォルトで)それを行うことができます、そして私はほとんどのJava IDEがそれを可能にすると思います。
Eclipse 3.4では
ソースコードを見ることも問題であるならば、新しい質問を開いてください。
Jarファイルレベル(Zipファイルとして)でのナビゲーションには、7Zipを使用します。これは非常にうまく機能し、エントリを表示および編集できるので、トラブルシューティングに最適です。
あなたがwindowsにいて、powershellを使っていて、jarの中のファイルを探しているなら、あなたはそうすることができます:
jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
これを行う1つの方法は、「パッケージ・エクスプローラー」でパースペクティブを開くことです。こうすることであなたはクラスの詳細であなたのjarファイルの構造を見ることができます。これには、パッケージエクスプローラーを使用してプロジェクトのライブラリフォルダーを確認してください。
ウィンドウ>>ビューを表示>>その他>> Java >>パッケージエクスプローラー
もう1つの方法は、JarPlugをEclipseプラグインとして使用できるということです。これはEclipse/springsourceで動作します
jar -tvf file_name.jar
上記はファイルの名前を表示するだけです。
ファイルの内容を表示するには、次の方法でフォルダー内のファイルを抽出:
jar -xvf file_name.jar
これはjarファイルを解凍し、あなたがこれを実行しているのと同じディレクトリにコンテンツを置きます。
またはWindowsでは、.jarファイルの名前を.Zip&に変更してから、解凍してjarファイルの内容を抽出して表示できます。 jarは内部的にはZipファイルです。
最近ではほとんどの解凍ユーティリティでそれらを開くことができ、ソースを見たい場合は DJ Java Decompiler のようなものを入手してください。
Bndtools はEclipse用の無料のJARビューアプラグインを提供します。
Eclipse更新サイト を追加して、ビューアのみをインストールしてください。
私は JARブラウザ を好む、それはあなたが複数のJARを閲覧し、同時に複数のJARにわたって特定のクラスを検索することができる簡単なインタフェースを持っている。
Eclipse 3.4 JDT
最初にEclipseにドラッグする必要があるため、これは最も早い方法ではありません。ただし、逆コンパイルが有効になっていても、完全なJavaクラスブラウジングが可能です。
私はJava Decomplierがあなたがここからダウンロードできるあなたの最良の選択肢であると思います: http://jd.benow.ca/Preview http://jd.benow.ca/img/screenshot17)。 png
私はWindowsのデフォルトの動作を "WinZipで開く"に設定しました。これにより、JARをアーカイブとして管理することが容易になります。手動でファイルを追加/削除することもできます。
私の要求は、実際にjarファイルを抽出せずに、jarファイル内のファイル(プロパティファイルなど)の内容を表示することでした。誰かが私と同じようにこのスレッドに到達した場合は、このコマンドを試してください -
unzip -p myjar.jar myfile.txt
これは私にとってうまくいった!
JarExplorerまたは JarVisualizer を使います。
JarSpy を試すことができます。私が使用しているそれのIDEAプラグインバージョンがあります。
Jarファイルの内容を表示および検索するには、 JarNavigator を試してください。
あなたのIDEもこれをサポートするはずです。 My IDE(SlickeEdit)はこれを「タグライブラリ」と呼んでいます。 jarファイルのタグライブラリを追加するだけで、クラスとメソッドを階層的に参照できるようになります。
Java -xf some-j.jar
はJARファイルを解凍します。
Macでは Jarzilla があります