5

私は、Eclipse が実行可能な jar ファイルを生成し、すべてのライブラリ .jar ファイルが抽出されて jar ファイルに含まれていることを理解しました。コマンドプロンプトからjarファイルを手動で作成するときに、これと同様のことを行うにはどうすればよいですか。lib jar をすべて classes フォルダーに抽出する必要がありますか?

現在私は使用しています -

    jar cvfm example.jar manifest.txt -C  Classes/ .

これにより、すべてのクラス ファイルを含む jar ファイルが作成され、この example.jar が存在するのと同じフォルダーにすべてのライブラリ jar を配置する必要があります。

4

2 に答える 2

3

jar コマンド ライン ユーティリティからこのようなことを行う方法はありません。依存関係の問題には、主に 3 つの解決策があります。

  1. MANIFEST.MF では、クラスパスの一部として他の jar ファイルを参照できます。その後、人々は使用java -jar [just your jar]してコードを呼び出すことができ、依存関係が取得されます。
  2. コードと依存関係をファット jar にパッケージ化することができます (これはあなたが説明しているものです)。通常、プロジェクトを何らかのビルド ツール (単純な javac や jar よりも高度なツール) を使用するように変換し、ツールを構成するだけです。たとえば、 maven を使用します。ここここで2つの異なるアプローチを参照してください
  3. (再びビルドツールを使用して)ファットジャーよりも優れたものを使用できます- one-jarを使用します。違いは、ファット jar を使用すると、異なるライブラリ内の同じ名前のファイルが「衝突」するリ​​スクがあることです。
于 2013-04-24T17:34:32.870 に答える