4

jar ファイル内の単一のクラス ファイルを置き換えても安全ですか?

クラス ファイルは安全ではない方法で相互に参照していますか?

グレー

4

2 に答える 2

7

はい、実行できますjar uf mJarFile.jar com\example\mClass.class

ただし、クラスで定数static finalプリミティブまたは文字列変数が定義されている場合、それらの値は他のクラスにインライン化されることに注意してください (そのため、新しいクラスに含まれる値は使用されません)。

于 2012-04-13T03:28:10.150 に答える
4

クラスを置き換えるjarコマンド(Sun JDK binで提供)。

ただし、以下を理解する必要があります。

jar uf myJar com\test\MyClass.class

ここで、クラスはcom.testパッケージにあります

クラスにサブクラスがある場合、通常、それらのクラスはMyClass$MySubclass.classとしても作成されます。

MyClass.classとは別に、これらのサブclasses.classを置き換える/追加する必要があります。そのような

jar uf myJar com\test\MyClass$MySubclass.class

メソッドのプロトタイプに関連する変更が変更されたかどうかを理解することも重要です。これらの依存クラスを再コンパイルして使用する必要があります。

とりわけ、jarが署名されている場合は、jarを再署名する必要があります。jarファイルで何かを変更すると署名が失われるためです。

于 2012-04-13T03:51:09.437 に答える