1

もう少し学んだので、より直接的な質問をすることができます。

シナリオ: に Java プロジェクトがありますIntelliJ Idea。最終的な目標は、Windows または Linux で実行できるスタンドアロンの .jar を作成することです。コマンド ラインから実行するかjava -jar jarname.jar、通常の単純な jar のようにダブルクリックするだけで実行できます。

src/package/nameディレクトリにいくつかのクラスを作成しました。ただし、クラスの 1 つで外部クラスを使用する必要があります。つまり、クラスがソース ディレクトリにないか、Java のデフォルト.jarJDK.

クラスが通常のステートメントでリソースを使用できるようにアーティファクトIntelliJを構築し、必要なリソースをその中に含め、必要なものをすべて適切な場所に配置するように構成するにはどうすればよいですか? 例の形で与えられた答えは素晴らしいでしょう。私はほとんどそれを理解しましたが、私が正しくやっていないことが1つだけあるはずです..jarimport

御時間ありがとうございます、

ヤンキー

ソース:

http://tukaani.org/xz/java.html

そのソースのディレクトリ構造を表示すると、より良いアイデアが得られます。

http://git.tukaani.org/?p=xz-java.git;a=tree

4

3 に答える 3

4

モルドールを瓶に詰め込むだけではありません。

多くの実験の結果、正しい方法ではないかもしれませんが、確実に機能する解決策を見つけました。重要な点は次のとおりです。

  1. 外部ライブラリ (私の場合は .jar) をモジュールの依存関係として定義します。

  2. 外部リソースを (IntelliJ が呼び出すもの) 「抽出されたディレクトリ」として追加します。

最初の項目については、[ファイル] -> [プロジェクト構造] に移動します。左側のプロジェクト設定リストで「モジュール」をクリックします。すぐ右側のリストに、プロジェクトに属するモジュール (モジュールが何であれ) のリストが表示されます。そのままにしておきますが、現在のモジュールとして強調表示/選択されていることを確認してください。必要なのは、右側のウィンドウに表示されるそのモジュールの設定です。「依存関係」タブに移動します。画面の右端に小さな緑色のプラス記号が表示されます。それをクリックし、「ジャーまたはディレクトリ」を選択して、完成したジャーと一緒に持ち込む関連リソースに移動します。

注: 「エクスポート」というチェック ボックスに惑わされないでください。その唯一の目的は、なぜ依存関係が jar と共にエクスポートされないのか疑問に思うので、終わりのない痛みと苦しみを引き起こすことです。常に覚えておいてください、エクスポートボックスはあなたにそれをクリックさせようとしています. カチカチしたい:3

次に、[ファイル] -> [プロジェクト構造] に移動して、そのリソースを抽出されたディレクトリとして追加します。次に、左側のプロジェクト設定リストの「アーティファクト」。上部の緑色のプラス記号をクリックして、新しい「Jar」アーティファクト「依存関係のあるモジュールから」を作成します。右側のウィンドウの [出力レイアウト] タブで、小さな緑色のプラス記号をクリックし、[抽出されたディレクトリ] を選択します。もう一度、貴重な jar を参照します。

これで、設計どおりに実行するために必要なすべてのリソースを含む jar アーティファクトを正常に構築できるはずです。

于 2013-01-24T06:56:09.990 に答える
1

外部ライブラリをモジュールの依存関係として構成するためのリファレンス セクションがあります -リンク。アーティファクトの構築に関して - そのコンテンツ (依存ライブラリのコンテンツを含む) を正確に指定することが可能です -リンク

于 2013-01-24T07:39:05.767 に答える
0

クラスの検索方法を読む...

プログラムを独自の jar で出荷し、依存する「ライブラリ」を別の jar として出荷しても問題ありません (期待される)。

javaコマンドに正しい-classpath引数を指定してプログラムを実行する方法を提供して、Javaがjarと依存jarの両方を見つけることができるようにする必要があります...それを行うには複数の方法があります...リンクを参照してくださいその上。

ロルフ

于 2013-01-24T00:12:57.107 に答える