1

これを聞くのは奇妙に思えるかもしれませんが、なぜそれが必要なのかを説明するには永遠に時間がかかります...

私が必要としているのは、JAR ファイル内の既存の Java .class ファイルを、コマンド プロンプトまたは Python プログラム内で編集する方法です。ユーザーがボタンを押すと、自動的に発生する必要があります。

これを行う方法、または可能かどうかはまったくわかりません。

4

3 に答える 3

8

jar ファイルは zip パッケージです。ファイルを解凍し、内容を編集して元に戻すだけです。難しいのは、.class ファイルの編集方法です。Java .class ファイルはバイナリ形式です。役立つライブラリがいくつかあります。

于 2011-12-10T03:36:26.943 に答える
1

クラスが JVM クラスローダによってすでにロードされている場合、アプリケーションが再実行されるまで .class ファイルを実際に再読み込みしない可能性があるため、このアプローチには問題があります。

BCELが存在することは知っていますが、使用していないため、a) python から、または b) 実行時に使用できるかどうかはわかりません。

編集: 実際には、Jeffrey のリストは、バイト コード マニピュレータのより包括的なリストを提供するため、より優れています。

于 2011-12-10T03:38:43.160 に答える
1

はい、できます。どのようにそれを行うかは、あなたが何をしたいかによって異なります。分野横断的な問題については、AspectJを参照してください。AspectJ を使用すると、クラスがコンパイルされた後でもカスタム コードを追加できます。

于 2011-12-10T03:35:51.920 に答える