質問: すでにロードされたクラスのbytecodeを書き換えたいのですがJNIなどを確認したのですがわかりません。
回答: javaのclassファイルのことでしょうか? 別に複数クラスを使えば理論上は可能... だと思うのですが、2つ(もしくはそれ以上)の問題が発生します。 1つ目は、操作できない可能性があることです。 windowsでは、現在使用しているファイルは操作できない、という機能があるので、それによって書き換えなどはできません。linuxの一部だとその機能はないのかな?忘れましたが、このように環境の問題が発生します。 2つ目は、バイトコードがどのように変換されるか、の問題です。 あくまでclassファイルは中間素材のようなものなので、これを**正しく**変換できれば、動作をしっかりするでしょう。ただし、あくまで私が調べた限りでは、どのようなバイトに変換されるか、という情報は出てきません。なので、たいてい成功にはならないでしょうし、成功できるよう実際にやるとしてもとても時間がかかるでしょう。 後、蛇足ですがJNIはあくまでCやC++とJavaをつなげるためのものです。ファイルのバイト単位での書き換えなら一応Javaでもできますし、なぜ私にはJNIが出てきたのかわからないです。