2011-07-06 21 views
10

私はmyfile.jarファイルを持っています。 jd-guiを使用して、myfile.jarのフォルダ内のすべての* .classを逆コンパイルします。多くのフォルダに多数の* .javaファイルがある* .Jarに再コンパイルするコードを逆コンパイルして修正したら?

いくつかのコードをいくつかの* .javaに修正した後、すべての* .javaを* .classに再コンパイルして、フォルダ全体をmyfile.jarにパックし直したい。

どうすればよいですか?あなたはJDKに付属しているjavac実行可能ファイルを必要とするクラスにJavaコードをコンパイルする

(これは、Javaコードで遊んで私の最初の時間である。)一般的には

+0

また、あなたが住んでいるところで(これは、あなたがあなたがjarファイルを入手したときに同意したライセンスによって)このようなことをするのが実際に合法であることを確かめてください。 –

+0

あなたの助けをありがとう、私はいくつかのエラーを修正しようとしたちょうど無料のアプリです。 – sandy

+2

なぜあなたは従業員を辞退しますか? CRAZIES –

答えて

1

、。

のUnix:

${JAVA_HOME}/bin/javac -d OUTPUT_DIRECTORY SOURCE_FILES 

のWindows:

%JAVA_HOME%\bin\javac.exe -d OUTPUT_DIRECTORY SOURCE_FILES 

あなたは、コードをコンパイルしたら、あなたはすべてのクラスを含むzipファイルといくつかのメタあるjarファイルを(作成することができます作成者に関するデータ、バージョンなど)。

${JAVA_HOME}/bin/jar cf output.jar INPUT_FILES 

あなたがjavacjarで使用できるさまざまなオプションについての詳細を読むことができます。 antのようなツールを使うと、ソースコードをコンパイルしてjarファイルを作成しやすくなります。 javacjarタスクを参照してください。

+0

ありがとう、複数の* .javaを* .classにコンパイルするために使用できるjavacコマンドは、サブフォルダ内のものを含んでいますか? – sandy

+0

@sandy:私の答えのようなシェルのワイルドカードを使用してください。 –

8

Java開発キット(JDK)が必要です。これには、Javaコンパイラ(通常はjavac)とjarアーカイバが含まれます。

が(そして、彼らのパッケージ構造に応じて)あなたはディレクトリ名srcでJavaファイルを持っていると仮定すると、あなたはすべてのファイルをコンパイルする

javac -d classdir -sourcepath src src/*.java src/*/*.java src/*/*/*.java ... 

を使用します。 (*の数をディレクトリレベルの数に調整します。ソースファイルを含むフォルダがいくつかある場合は、それらを個別にリストすることもできます。

プログラムに外部ライブラリが必要な場合は、-classpath引数を付けてください。

ディレクトリclassdirにすべてのコンパイル済みクラスがあります。オリジナルのjarファイルを調べてください。そこにあるクラス以外のファイルもクラスディレクトリにコピーする必要があります(以前の相対ディレクトリと同じ)。最も顕著なのはMETA-INF/MANIFEST.MFです。

次に、これらから新しいjarファイルを作成します。 jarツールはJDKに含まれています。

jar cfm mypackage.jar classdir/META-INF/MANIFEST.MF -C classdir . 

(あなたは、単に.jarファイルにあなたの自信のzipプログラムを使用し、得られたzipファイルの名前を変更することができます。あなたのファイルにASCII以外の名前を持っている場合は、UTF-8にファイル名のエンコーディングを設定してください。 )

関連する問題