ファイルがありKitchen.jar
ます。その中のクラスを変更する必要があります。JDで逆コンパイルします。次に、Toster.java
ファイルを変更して、次のコマンドでコンパイルします。
javac -classpath . Toster.java
そして、私はそれをで戻しますKitchen.jar
:
jar -uf Kitchen.jar Toster.class
1つの問題を除いてすべてが機能します。JDでupdatedを開くKitchen.jar
と、すべてのメソッド内のローカル変数の名前が。のように変更されていることがわかります。なんで?localLongVar
私が尋ねる理由はKitchen.jar
、変更後に働くことを拒否するからです。そして、それはコンパイルの問題であるに違いないと思います。多分私はいくつかの旗か何かを誤用しました。わからない。基本的な構文を除いて、Javaの知識はまったくありません。
私の推測では、最新の1.7バージョンでコンパイルし、元のjarは古いJDKでコンパイルしています。それは操作の失敗を説明するかもしれませんが、それは地元の人々の名前の変更を説明していません。
例
元のjarからのランダムな行:
BigInteger[] result = new BigInteger[bis.length / 2];
そして、私のクラスとまったく同じ行:
BigInteger[] arrayOfBigInteger1 = new BigInteger[paramArrayOfBigInteger.length * 2];
だからそのresult
対arrayOfBigInteger1
。