269

jar ファイル内のクラス、メソッド、プロパティなどを表示する最も簡単な方法は何ですか? 非常に便利なLutz Roeder .NET Reflector - for Javaに相当するものを探しています

4

31 に答える 31

322

JDKを使用してjar -tf、jar内のファイルを一覧表示します。javap特定のクラスファイルから詳細を取得します。

于 2008-11-26T15:09:11.090 に答える
63

私は通常、7-Zip でそれらを開きます...少なくともパッケージ、クラス、およびリソースを表示できます。
メソッドやフィールドを表示する必要がある場合は、Jad を使用しますが、もちろん、(良い) JavaDoc に依存する方がよいでしょう...

さて、SO のどこかでいくつかの Eclipse プラグインが言及されました。クラスが配置されている jar ファイルを見つけるために、おそらくもっと多くのことができます (つまり、あなたが要求したこと)。

[編集] SOスレッドへの参照。質問された内容ではありませんが、何らかの形で関連しているため、便利です。

于 2008-11-26T12:24:24.700 に答える
36

私が個人的に使っているのはJD-GUIです。これは、ソース コード、クラス、およびクラス内のオブジェクトを確認できるだけでなく、左側のツリー メニューでファイル構造を確認できる無料の「逆コンパイラ」です。ただし、クラスを直接変更することはできません。

JD-GUI の Web サイト: http://jd.benow.ca/

于 2012-09-14T12:53:41.363 に答える
8

WinRar を使用します。そのままの方法でフォルダー構造を開きます。パスを保持しながら、アーカイブ内編集も可能です。

結局、JAR ファイルは ZIP アーカイブのみです。

于 2008-11-26T12:27:01.993 に答える
6

中身を見たい場合は、以下の最初のオプションとして名前を変更してください..

  1. F2 & Rename to jarfile.zip //任意の解凍ツールを使用...

  2. jar tvf jarfile.jar

  3. jar tf jarfile.jar

于 2015-11-13T10:39:01.330 に答える
5

私の理解が正しければ、クラスだけでなく、メソッド、プロパティなども見たいと思うでしょう。私が知っている唯一のツールは Eclipse です。プロジェクトのクラスパスに jar を追加すると、通常のパッケージ エクスプローラーを使用してメソッドとプロパティでそのクラスを参照できます。

とにかく、これは優れたスタンドアロン Java ツールの良い考えです。

于 2008-12-21T12:49:15.633 に答える
4

Jad は不格好で、もはやメンテナンスされていません。洗練された UI と新しい言語機能のサポートを備えた"Java Decompiler"に切り替えました。

ただし、私が使用したすべての逆コンパイラは、正常に逆コンパイルできないコードに遭遇します。それらについては、標準の JDK ツールであるjavapによって生成される逆アセンブルされた Java バイト コードを理解することが役立ちます。

于 2008-11-26T16:31:16.043 に答える
3

これを行う 1 つの方法は、「パッケージ エクスプローラー」でパースペクティブを開くことです。これを行うと、jar の構造とクラスの詳細を確認できます。これを行うには、パッケージ エクスプローラーを使用してプロジェクトのライブラリ フォルダーを確認します。

ウィンドウ>>ビューの表示>>その他>>Java>>パッケージエクスプローラー

もう 1 つの方法は、JarPlug を Eclipse プラグインとして使用することです。これはEclipse / springsourceで機能します

http://jar-plug.sourceforge.net/

于 2012-11-07T18:12:35.493 に答える
3

Windows で PowerShell を使用していて、jar 内のファイルを探している場合は、次のことができます。

jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
于 2012-10-17T17:39:01.187 に答える
3

Eclipse 3.4では

  1. 問題の jar ファイルを Java プロジェクトにドラッグします。jar ファイルのコピーが表示されます。
  2. jar ファイルを右クリックし、[ビルド パス] -> [ビルド パスに追加] を選択します。
  3. Jar ファイルは「参照ライブラリ」ノードに移動され、プロジェクト エクスプローラー ペインで開いてナビゲートできます。

ソースコードを見ることも問題である場合は、新しい質問を開いてください。

Jar ファイル レベル (zip ファイルとして) でのナビゲーションには、7zip を使用します。これは非常にうまく機能し、エントリの表示と編集が可能で、トラブルシューティングに最適です。

于 2009-06-13T19:02:37.157 に答える
3

jar ファイルは単なる zip ファイルなので、(お好みの解凍ユーティリティを使用して) 解凍すると、内部のすべてのファイルが取得されます。

メソッドを確認するためにクラス ファイルの内部を調べたい場合は、そのためのツールが必要になります。PhiLho が言及しているように、Eclipse は (デフォルトで) それを行うことができ、ほとんどの Java IDE はそれが可能であると思います。

于 2008-11-26T12:28:21.087 に答える
3

私の要件は、jar を実際に抽出せずに、jar 内のファイル (プロパティ ファイルなど) の内容を表示することでした。誰かが私と同じようにこのスレッドにたどり着いた場合は、次のコマンドを試してください -

unzip -p myjar.jar myfile.txt

これは私にとってはうまくいきました!

于 2019-03-05T11:27:31.507 に答える
2

最近のほとんどの解凍ユーティリティでそれらを開くことができます。ソースを表示したい場合は、DJ Java Decompilerなどを入手してください。

于 2008-11-26T16:44:02.927 に答える
2

Bndtoolsは、Eclipse 用の無料の JAR ビューアー プラグインを提供します。

Eclipse 更新サイトを追加し、ビューアーのみをインストールします。

ここに画像の説明を入力

于 2015-02-19T14:06:55.530 に答える
2

ここからダウンロードできる Java Decomplier が最適なオプションだと思います: http://jd.benow.ca/ プレビュー

于 2016-01-30T13:24:58.687 に答える
1

エクリプス 3.4 JDT

最初に日食にドラッグする必要があるため、これは最速の方法ではありません。ただし、逆コンパイルが有効になっていても、完全な Java クラスのブラウジングができます。

于 2008-11-26T16:42:10.670 に答える
1

Windows のデフォルト アクションを「WinZip で開く」に設定しました。これにより、JAR をアーカイブとして簡単に管理できます。ファイルを手動で追加/削除することもできます。

于 2008-12-21T23:29:52.300 に答える
1

私はJAR Browserを好みます。これには、複数の JAR を参照し、複数の JAR で特定のクラスを同時に検索できるシンプルなインターフェイスがあります。

于 2008-11-26T15:14:10.863 に答える
0

Mac にはJarzillaがあります

于 2011-03-21T00:30:38.743 に答える
0

JarExplorer またはJarVisualizerを使用します。

于 2012-12-07T10:09:10.253 に答える
0

JarSpyを試すことができます。私が使用している IDEA プラグイン バージョンがあります。

于 2008-11-26T12:32:05.650 に答える
0

java -xf some-j.jarJARファイルを解凍します。

于 2018-04-18T01:52:10.743 に答える
0

ほとんどの人がこれに正しく答えています。jar パスがどこにあるかさえわからない場合、または各ホストで JDK パスが異なる場合の Linux の 1 つの解決策は次のとおりです。

$(find / -type f -name "jar" 2>&1 |grep '/JDK' |head -1 ) tf FULLY_QUALIFIED_NAME_TO_YOUR_FILE
于 2021-05-05T21:16:06.400 に答える
0

IDE もこれをサポートする必要があります。私の IDE (SlickeEdit) では、これを「タグ ライブラリ」と呼んでいます。jar ファイルのタグ ライブラリを追加するだけで、クラスとメソッドを階層的に参照できるようになります。

于 2008-11-26T18:17:37.387 に答える