0

申し分なく、私は Java についてあまり詳しくありません。これが可能かどうかさえわかりませんが、とにかく行きます。JAR から .class ファイルを取得し、逆コンパイルしました。必要に応じて編集しましたが、再コンパイルしたいと思います。その 1 つの .java ファイルを再コンパイルして、jar ファイル内に戻すことはできますか? ソース パスを設定して再コンパイルしようとすると、ファイルが参照している .java ファイルの 1 つにエラーがあると表示されます (それはその言葉ですか?)。

編集:逆コンパイルは成功しました。再コンパイル時のエラー:

C:\Users\Sam\Desktop\DECOMP~1\src\org\bukkit\craftbukkit\CraftServer.java:619: エラー: ステートメントではありません ex; ^ C:\Users\Sam\Desktop\DECOMP~1\src\org\bukkit\craftbukkit\CraftServer.java:629: エラー: ステートメントではありません ex; ^ C:\Users\Sam\Desktop\DECOMP~1\src\org\bukkit\craftbukkit\CraftServer.java:637: エラー: ステートメントではありません ex; ^ C:\Users\Sam\Desktop\DECOMP~1\src\org\bukkit\craftbukkit\CraftServer.java:646: エラー: ステートメントの例外ではありません。^ C:\Users\Sam\Desktop\DECOMP~1\src\org\bukkit\craftbukkit\event\CraftEventFactory.java:194: エラー: 式静的クラス _cls1 の不正な開始 ^ C:\Users\Sam\Desktop\DECOMP ~1\src\org\bukkit\craftbukkit\event\CraftEventFactory.java:215: エラー: 不正な形式の浮動小数点リテラル switch(org.bukkit.craftbukkit.event._cls1..SwitchMap.org.bukkit.event.block.Action[ action.ordinal()]) ^ C:

4

2 に答える 2

0

まず、すべての構文エラーを削除してから、そのjarファイルのクラスパスを設定してから、そのクラスファイルに存在するクラス参照を使用している可能性があるため、ファイルをコンパイルしてください。

于 2012-07-13T04:23:08.737 に答える
0

この練習を行うときは、次の 2 つのことを確認する必要があります。

  1. 逆コンパイルして変更した後、新しいソースは有効ですか?
  2. ソースは他のクラスに依存していますか? その場合、それらはクラスパスにある必要がありますjavac

いくつかのまれな例外を除いて (何をハッキングしようとしているかによって異なります)、これで十分です。

編集

ソースが有効ではないようです。たとえば、最初のエラー メッセージを見てみましょう。

C:\Users\Sam\Desktop\DECOMP~1\src\org\bukkit\craftbukkit\CraftServer.java:619: error: not a statement ex; ^ 

CraftServer.java619行目に記載されていないものがあります。

PS、bukkit.org を見ると、このソフトウェアはオープン ソースのようです。本当に逆コンパイルする必要がありますか?

于 2012-07-13T03:04:03.993 に答える