可能性のある複製:
Java命令を編集するクラスファイル/バイトコードエディタはありますか?
Javaソースコードはバイトコードにコンパイルされますが、実際にはクラスファイルにあります。コンパイルされたクラスのバイトコードを表示することは可能ですか?
可能であれば、編集できますか?
そのためのEclipseプラグインはありますか?
はい。 JDKに含まれているjavap
コマンドを使用して、クラスのバイトコードを表示できます。例えば:
javap -c com.mypackage.MyClass
Javaバイトコード、たとえば [〜#〜] asm [〜#〜] および Jasminで作業するのに役立ついくつかのライブラリとツールがあります。 。
JDKには、クラスファイル内のバイトコードを逆アセンブルするツールである javap が付属しています。バイトコードレベルでの編集が可能です。 [〜#〜] bcel [〜#〜] 、a Javaクラスファイルの読み取り、操作、書き込み用に設計されたライブラリをご覧ください。
バイトコードを編集するツールとライブラリのリストは、 Java-net にあります。たとえば、 [〜#〜] jbe [〜#〜] 、a Java GUIが付属しているバイトコードエディタです。
バイトコードを表示するには
Javapを忘れてください!私が今まで使用した中で最高のプラグインは "ASM-EclipseのBytecode Outlineプラグイン" です
http://asm.ow2.org/Eclipse/index.html
ASM(バイトコード操作フレームワーク)からです。
バイトコード(要求)、スタック要素(jvmスタイル)、およびasmフレームワークメソッドを使用して同じ結果を生成する方法(同じバイトコードを生成する方法)を示しています。
さらに良いのは、ソースコードを選択している間にそうするという事実です。バイトコードを調べるためにbinディレクトリで.classファイルを見つける必要はありません。
それらを編集するには
コードを使用する:
手で:JBE
私の経験では、 jclasslib は最高のバイトコードビューアーの1つです。
エディターに関しては、バイトコード操作ライブラリーとGUIを備えたエディターの2つのタイプがあります。この質問はSOで数回尋ねられました。答えと提供されたリンクを確認できます。
バイトコードの編集は、思ったほど簡単ではないことに注意してください。 [〜#〜] jvms [〜#〜] は、クラスファイルのあり方に多くの制限を課し、編集の1つがそれらの1つに違反する可能性が高くなります。
これらの他の質問を確認してください。
使用してみてください-dirtyJOE-Java Overall Editorは、コンパイルされたJavaバイナリ(.classファイル)の複雑なエディタおよびビューアです。