112

重複の可能性:
命令を編集する Java クラスファイル / バイトコード エディタはありますか?

Java ソース コードはバイトコードにコンパイルされ、実際にはクラス ファイルにあります。コンパイルされたクラスのバイトコードを表示することはできますか?

可能でしたら編集可能でしょうか?

そのためのEclipseプラグインはありますか?

4

5 に答える 5

161

はい。JDK に含まれているコマンドを使用してjavap、クラスのバイト コードを表示できます。例えば:

javap -c com.mypackage.MyClass

ASMJasminなど、Java バイトコードの操作に役立つライブラリとツールがいくつかあります。

于 2010-07-23T07:00:26.657 に答える
26

JDK には、クラス ファイル内のバイト コードを逆アセンブルするツールであるjavapが付属しています。バイトコードレベルでの編集が可能です。クラスファイルの読み取り、操作、および書き込みを行うように設計された Java ライブラリであるBCELをご覧ください。

バイト コードを編集するためのツールとライブラリのリストは、java-netにあります。たとえば、GUI も付属する Java Byte Code エディターであるJBE 。

于 2010-07-23T07:00:21.427 に答える
19

バイトコードを表示するには

javapを忘れてください!私が今まで使った中で最高のプラグインは「ASM-Eclipse用のバイトコードアウトラインプラグイン」です。

http://asm.ow2.org/eclipse/index.html

ASM(バイトコード操作フレームワーク)からのものです。

これは、バイトコード(要求したもの)、スタック要素(jvmスタイル)、およびasmフレームワークメソッドを使用して同じ結果を生成する方法(同じバイトコードを生成するため)を示しています。

さらに良いのは、ソースコードを選択しているときにそうするという事実です。バイトコードを検査するために、binディレクトリで.classファイルを見つける必要はありません。

それらを編集するには

コードの使用:

  • ASM:訪問者ベース、非常に、非常に高速。
  • BCEL:クラスファイルのメモリ内記述としてバイトコードをロードします。
  • Javassit:最も使いやすいもので、パターンマッチングと式の置換を行うことができます。

手作業:JBE

于 2010-08-03T01:56:52.897 に答える
5

私の経験では、jclasslibは最高のバイトコード ビューアーの 1 つです。

エディタには、バイトコード操作ライブラリと GUI 付きエディタの 2 種類があります。この質問は SO で数回尋ねられました。回答と提供されたリンクを確認できます。

バイトコードの編集は、思ったほど簡単ではないことに注意してください。JVMSは、クラス ファイルのあり方に多くの制限を課しており、編集の 1 つがそれらの 1 つに違反する可能性が非常に高くなります。

次の他の質問を確認してください。

.class ファイルを直接編集し、オペコードをいじる

クラスファイルのバイトコードを表示することはできますか?

Java バイトコードでのプログラミング

于 2010-07-23T07:28:38.213 に答える
0

使用してみてください - dirtyJOE - Java 全体エディターは、コンパイルされた Java バイナリ (.class ファイル) 用の複雑なエディターおよびビューアーです。

于 2012-02-26T20:30:21.203 に答える