4

jar ファイルから Java クラスを読み取り (ロード)、クラスにコードを追加してから、jar に戻すにはどうすればよいですか? これらすべてを実行するスクリプト (Java コード) を作成する必要があります。私が考える手順は次のとおりです。 1. jar を読み取り、java.util.jar パッケージのメソッドを使用してクラスの名前のエントリを取得します。 2. このクラスをロードし、クラスから配列を取得して変更します。 3. 多分コンパイルします変更を適用するコード 4. 更新されたクラスを jar ファイルに入れます

Javaで2番目と3番目のステップを実行する方法がわかりません。

このクラスを拡張して配列を変更する新しいJavaクラスを作成することを考えていましたが、この配列はpublic static finalとして宣言されているため、変更できません。または、私が間違っていて、クラスを拡張して配列を変更する方法はありますか?

4

3 に答える 3

4

jar は単なる ZIP ファイルなので、 7-ZIPなどの任意のアーカイブ マネージャーで抽出できます。これには、コンパイルされた Java ファイルであるクラス ファイルが含まれます。バイトコードを読み取って変更するには、Java 逆コンパイラが必要です。

于 2012-08-07T14:32:08.370 に答える
4

抽出->逆コンパイル-> コードの追加 -> Jar の作成

于 2012-08-07T14:33:45.900 に答える
0

最善の解決策は、コードで JAR を使用し、クラスを拡張することです (クラスで許可されている場合)。

それができない場合、JAR クラスは実際には ZIP アーカイブです。x.jar の名前を x.zip に変更して、コンテンツを抽出できます。

ここに詳細があります(特にOscarRyzの回答を参照してください): jarファイルを再コンパイルするにはどうすればよいですか?

于 2012-08-07T14:34:24.420 に答える