Myfile.jarファイルがあります。 jd-guiを使用して、myfile.jar内のフォルダー内のすべての* .classを逆コンパイルします。多くのフォルダに多くの* .Javaファイルがあります
* .Javaのコードを修正した後、すべての* .Javaを* .classに再コンパイルし、フォルダー全体をmyfile.jarにパックします。
どうすればよいですか?
(Javaコードで遊ぶのはこれが初めてです。)
Java Development Kit(JDK)が必要です。これには、Javaコンパイラ(通常はjavac
という名前)とjarアーカイバが含まれます。
Javaファイルがディレクトリ名src
にあると仮定すると(パッケージ構造に応じて)、次のようになります。
javac -d classdir -sourcepath src src/*.Java src/*/*.Java src/*/*/*.Java ...
すべてのファイルをコンパイルします。 (*の数をディレクトリレベルの数に調整します。ソースファイルを含むフォルダがいくつかある場合は、それらを個別に一覧表示することもできます。一部のクラスが他のクラスに依存している場合は、他のクラスを省略できます。コンパイラは、それらを自動的にコンパイルします。)
プログラムに外部ライブラリが必要な場合は、これらに-classpath
引数を指定してください。
これで、ディレクトリclassdir
にすべてのコンパイル済みクラスができました。元のjarファイルを調べます。そこにある非クラスファイルも、classdirにコピーする必要があります(以前と同じ相対ディレクトリにあります)。これには、特にMETA-INF/MANIFEST.MF
が含まれます。
次に、これらから新しいjarファイルを作成します。 jar
ツールはJDKに含まれています。
jar cfm mypackage.jar classdir/META-INF/MANIFEST.MF -C classdir .
(自信を持ってZipプログラムを使用し、結果のZipファイルの名前を.jarに変更することもできます。ファイルの名前がASCII以外の場合は、ファイル名のエンコードをUTF-8に設定してください。)
一般に、Javaコードをクラスにコンパイルするには、JDKに付属のjavac
実行可能ファイルが必要です。
Unix:
${Java_HOME}/bin/javac -d OUTPUT_DIRECTORY SOURCE_FILES
ウィンドウズ:
%Java_HOME%\bin\javac.exe -d OUTPUT_DIRECTORY SOURCE_FILES
コードをコンパイルしたら、jarを作成できます(これは、すべてのクラスと、作成者、バージョンなどに関するいくつかのメタデータを含むZipファイルです)。
${Java_HOME}/bin/jar cf output.jar INPUT_FILES
javac および jar で使用できるさまざまなオプションの詳細を読むことができます。 antのようなツールを使用すると、ソースコードのコンパイルとjarの作成が簡単になります。 javac および jar タスクを参照してください。