2016-04-22 9 views

答えて

7

はい、シンプルです(既に.classファイルがある場合は再コンパイルされません)。

(既に.classファイルがあり、それを.jarに追加したいと仮定します。.classファイルがない場合は、.javaソースファイルを作成して.classファイルにコンパイルする必要があります。

Jarファイルは実際にはzipファイルです.jarファイルは、zip/unzipを使用して作成および展開することができます。解凍プログラムにを使用して

  1. jarファイルを解凍し
  2. (おそらく別のname.jarに)再びジップ

(*)では(*)解凍したディレクトリにクラスを追加ステップ2では、でなければなりません。ディレクトリに.classファイルを入れてください。のパッケージ名はと一致する必要があります。ディレクトリパス .classファイルが存在します。.jarアーカイブルートを基準にしています。例えば

あなたMy.classは、それがパッケージにcom.nickyであると定義している場合、それは、COMはアーカイブのルートディレクトリであるCOM /ニッキー/ My.class(で発見されなければなりませんディレクトリ)。 My.classにパッケージがない場合は、アーカイブルートディレクトリになければなりません。

んが、再コンパイルは必要ありません - Javaは実行時時に動的にリンクするん - プログラムの残りの部分は、クラスcom.nicky.Myを使用する必要がある場合、クラス・ファイルが正しい場所にあれば、それはとても成功したでしょう.jarファイルに保存します。

あなたは仮想マシン(のjava -cpのはA.jar ...:b.jar)のクラスパスパラメータを使用します。ここで、クラスを検索するためにJavaプロセスを伝えるために - 場合にはそれがよりになるだろう別の.jarファイルにクラスをパッケージ化する意味があります..

- コメントを編集する/コメントに返信する: 新しい.javaファイルを作成する場合は、最初にコンパイルする必要がありますjavac jdkに付属のコマンドラインコンパイラを使用しています。

すべてのJavaクラスはパッケージに属します。パッケージは通常、.javaソースファイルの最初の行で宣言されます。パッケージ名は、クラスのディレクトリパスの場所(上記の例のように)、.javaソースファイル(コンパイルが成功するため)、.classファイル(動的ロード/実行が成功するため)の両方と一致する必要があります。

Java IDE(例:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/mars2)をダウンロードして使用して.classファイルを作成することもできます。 Eclipseで新しいJavaプロジェクトを作成し、クラスのソースコードを書き、ビルド(既に自動的にビルドされていない場合)をクリックして、ファイルエクスプローラを使用してディスク上のプロジェクトの 'ターゲット'ディレクトリから.classファイルを取得します。

新しいの.javaクラスを使用すると、追加のコンパイル時の依存関係があり、コンパイラに指示する

javac -cp your.jar com/nicky/My.java

を使用し、それを追加しようとしているの.jarからのクラスに依存している場合。

あなたは、Eclipseからコンパイルする場合は、あなたのプロジェクトがyour.jarに依存していることを設定する必要があります。右あなたのプロジェクトをクリック - >プロパティ - > Javaのビルドパス - >ライブラリは - > JARを追加。..

+0

迅速かつ簡潔な答えをありがとう。新しい.javaファイルを作成していて、A.というフォルダに.jarを解凍したとしましょう.Aフォルダの内部には、META-INFとorgという2つのフォルダがあります。 orgにはファイルがあり、私は自分の.javaをDriveというフォルダに入れたいと思っています。すべてをコンパイルして.jarに戻すにはどうしたらいいですか? – Nicky

+0

My.javaソースをMy.classファイルにコンパイルし、My.classファイルを/ your/My.classのA/package/name /に格納し、フォルダAを.jarファイルに圧縮する必要があります。 (zip/jarには 'A'フォルダはなくてはいけません - Aフォルダはアーカイブルートでなければなりません)。 zipを使用して.jarを作成するのは簡単です。コンパイルは必要ありません。新しい.javaソースコードが言及/使用している依存関係に応じて、.javaを.classにコンパイルしているかもしれません。 –

+0

こんにちはBorut、Java IDEをダウンロードし、私の.javaを.classにコンパイルしようとしました。どのJARが依存しているのか分かりませんので、ほとんどすべてを追加しました。 http://imgur.com/cCIVJAXここにはちょっと見た目があります。私はIsInBlackList.classをコピーするために自分のワークスペースに行き、それをその.jarファイルの解凍されたフォルダに入れました。その後、JD guiを使って.jarファイルを調べようとしましたが、IsInBlackList.classに//内部エラーがあります//そこにはコードがありませんでした。 – Nicky

関連する問題