web-dev-qa-db-ja.com

.jarファイル内のクラスファイルを削除し、独自の実装で変更する方法

だから、私は.jarファイルであるサードパーティのライブラリを持っています。その瓶にはいくつかのクラスがあります。問題は、その.jarの1つのクラスに1つのバグがあることです。 jarファイルを逆コンパイルして、Javaコードを確認できるので、それを知っています。これは、そのクラスがプログラムのバグの原因であると確信しています。

クラスを削除して自分のクラスに置き換えるという考え方ですが、方法がわかりません。

11
Agung Pratama

これを行うには複数の方法があります。

  1. Winrarを使用してみてください。その中でjarを開き、クラスファイルを含むディレクトリを探索できます。クラスファイルを削除および追加できます。

  2. Winrarを使用したくない場合は、次のようにします。

このコマンドを使用してjarを抽出します

jar -xvf yourjar.jar

それは瓶を爆発させます。古いクラスファイルを削除し、更新されたクラスファイルを追加します

次のコマンドを使用してjarを再作成します

jar -cvf yourjar.jar directoryofexploderjar /

14
Juned Ahsan
  1. クラスを拡張し、メソッドを書き直してバグを削除する

  2. JDECを使用してクラスを逆コンパイルおよび置換します( http://jdec.sourceforge.net/

1
Igor S.

元のクラスと同じパッケージに独自のクラスを記述し、クラスがJavaクラスパスのサードパーティjarの前にあることを確認します。これにより、元のバージョンであるクラスローダーをオーバーライドします。クラスをロードします。

0