Eclipseで、キーの組み合わせを押すと、.classファイル(バイトコード)の内容を表示するエディターページが表示されることがあります。そのキーの組み合わせが何であるか思い出せないようです。
誰か教えてもらえますか?
または言い換えれば、どのようにして自分のバイトコードを見ることができますか?
Eclipseのデフォルトのクラスファイルビューアは、バイナリに関連付けられている場合はソース(VonCの回答を参照)を表示します。それ以外の場合は、javapのようなクラスのビューを提供します(ソースを添付するオプションがあります)。あなたが探しているのは後者だと思います。
リンクされたソースではなく、その出力をEclipseに明確に強制する方法を見つけたことはありません。おそらく必要なのは、Javapのような機能(またはjavapへのインターフェース)を提供するEclipseプラグインです。 「jadのような「逆コンパイル」ではなく)「逆アセンブル」することを示すプラグインを探します。
プラグインがなければ、おそらくjavapを実行するように外部ツールを構成できますが、他のEclipse機能とうまく連動しない可能性があります。
編集:上記について明確にしましょう。F3を押すと、Eclipseは次のことを行います(通常、実際の手順は少し異なる場合があります)。
クラス/メソッド宣言の場合、宣言を含むクラスファイルのビルドパスの参照を引き続き検索します。見つかった場合、
a)クラスファイルにソースが添付されている場合は、リンクされたJavaファイルの読み取り専用エディターを開きます。
b)クラスファイルにソースが添付されていない場合は、コンパイルされたクラスファイルの逆アセンブルされた(javapのような)バイトコードを示す読み取り専用パネルを開きます。
3.b)には専用のキーシーケンスがあると思っていると思いますが、そうではないと思います。しかし、繰り返しますが、私はここで間違っていることが証明されたいです。
ASM 4.0プラグインを使用できます。
インストール
バイトコードアウトラインプラグインは、Eclipse Update ManagerからObjectWeb Eclipse Update Siteでインストールできます http://download.forge.objectweb.org/Eclipse-update/ または、プラグインはObjectWeb Forgeサイト。Eclipseプラグインディレクトリに手動でインストールされます。
使用方法
現在の.Javaまたは.classファイルのバイトコードを表示するには:
ウィンドウ->ビューの表示->その他-> Java->バイトコード
2つの.Javaまたは.classファイルのバイトコードを比較するには:
2つの* .classまたは* .Javaファイルを選択します->右クリック->比較->その他のバイトコード
または
1つの* .classまたは* .Javaファイルを選択->右クリック->比較->別のクラスバイトコード
次の外部ツール構成を使用すると、javap
の助けを借りて、EclipseでJavaバイトコードを表示できます。
上記のポップアップを取得するには、Run
オプションを選択してExternal Tools
を選択し、External Tools configuration...
を選択します。
${system_path:javap}
は、Eclipseが使用するJDKでjavapを見つけるために使用されます。代わりに、javapへの絶対パスを使用できます。
${project_loc}
は、プロジェクトへの絶対パスを返します。これは、使用する事前定義変数が見つからなかったため、リソースの.class
ファイルを見つけるために使用されます。そのため、javap
は、プロジェクトを含むディレクトリではなく、プロジェクトのディレクトリで実行されます。 .class
ファイル。
javap
に渡される引数の中には:
bin
は、Eclipseプロジェクトのデフォルトの出力フォルダーです。これをbuild/classes
またはプロジェクトで使用されているものに変更します。値は${project_loc}
を基準にしています。代わりに絶対パスを指定できます。${Java_type_name}
は、選択したクラス名を取得するために使用されます。Javaファイルをプロジェクトエクスプローラービューまたはプロジェクトナビゲータービューで選択するか、Javaタイプを任意のビューで入力して、外部を実行することができます。ツール-注:この方法は、メソッドや内部クラスなどを選択してツールを実行すると、それ自体ではリソースではないため、${project_loc}
が発生するシナリオにつながるため、うまく機能しません空の。
Dr。Garbage Toolsは、Apache Open SourceライセンスでリリースされたEclipseプラグインのスイートです。
Eclipse Marketplaceを使用してBytecode Visualizerをインストールします。
バイトコードを表示するには:
「ウィンドウ>設定>一般>エディタ>ファイルの関連付け」
デフォルトをあなたのforboth .class associationに変更します。
「*。class」:「クラスデコンパイラビューア」がデフォルトで選択されています。
"*。class without source": "Class Decompiler Viewer"がデフォルトで選択されています。
まあ... .class
は、ナビゲータービューまたはパッケージエクスプローラービューで選択されます。 F3 エディターで逆コンパイルしたバージョンを開くのに十分です。
User833970が示唆するように:バイトコードアウトラインプラグイン: http://andrei.gmxhome.de/bytecode/index.html
そのベースで、現在開いているJavaファイル)の「バイトコード」ビューを提供します。これは、探していたものです。
ただし、デフォルトの.classビューアの代わりにランダムな.classファイルをロードするように割り当てることもでき、多くの点でそれを上回ります。たとえば、アウトラインビューでメンバーをクリックすると、このビューアは実際にはバイトコードの正しい場所にジャンプします。
ダウンロードリンク(ドロップイン用)は前述のリンクにあります。更新サイトは http://andrei.gmxhome.de/Eclipse/ です。
バイトコードに本当に興味がある場合は、テキストエディターを使用して.classファイルのバイトコードを開いて編集できるEclipseプラグインがあります。
私はこれのためにいくつかの異なる解決策を試しました。バイトコードビジュアライザー(ここから入手可能: https://sourceforge.net/projects/drgarbagetools/ )は、私の意見では、最良のソリューションです。それは出力をきちんと表示し、それがソースコードにどのようにリンクするかを明確にします。一部のバイトコードでいくつかのマイナーな誤解に気づきましたが、その要点は理解できます。
残念ながら、執筆時点ではNeonをサポートしていないようです。ただし、火星はサポートします。