0

私は、jar にコンパイルしたい大量のクラスを含むプロジェクトに取り組んでいました。エントリポイントとmanifest.txt、およびjar内の必要なすべてのアイテムについて知っています。クラスはすべてコンパイルされ、.classファイルとすべてがありますが、問題は、すべてのクラスファイルを最終的に追加する必要があることですコマンドプロンプトで1行を介してコンパイル中のjar。私は自分の作品を絶えず更新し、自分の作品を再コンパイルして再jar化する必要があるため、より簡単な方法で実行できるかどうか疑問に思っていて、文字通りインターネットで何も見つけませんでした. トリックを実行するサードパーティのプログラムについて聞いたことがありますが、あるウェブサイトの誰かが、それらが潜在的に問題や何かを引き起こす可能性があると述べたので、私はすぐにその考えを取り下げました. 今はかなり窮地に立たされていますが、これについての意見や提案を聞きたいです。要約すると:

  • 大量の .class ファイルを 1 つの jar にコンパイルする方法が必要です。コンパイルの合間にすべてのファイルを何度も入力することなく、時間とフラストレーションを節約できます。

  • これが可能であれば、ネイティブのものを好むでしょう-たとえば、サードパーティの代わりにJDKのjarコンパイラ。コンパイル時の引数でマニフェストまたはその他のファイルを使用してこれを行う方法がある場合は、聞かせてください。

  • このためにサードパーティのアプリケーションを使用する理由、または使用しない理由を提案、議論、または私に与えてくれる人は誰でも大歓迎です.
  • 私はWindowsで作業していますが、私のアプリケーションはクロスプラットフォームになるので、.exe拡張子を持つ最終ファイルを作成するコンパイルソリューションを主なオプションとして提案しないでください(誰かがこれを行う方法を知っている場合は、これも気になるのでコメントで聞いてみたいです。)

事前に感謝します。返信に役立つ何かを私に尋ねる必要があると感じた場合は、撃ってください!

4

3 に答える 3

3

この ant チュートリアルを見て、コンパイルして jar できる単純な build.xml を作成する方法を示します。

http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html

その後、独自のニーズに合わせて調整できます。

注: ant は、あなたのような小さなプロジェクトにのみ適しています。

于 2012-09-30T14:58:46.233 に答える
2

この問題および関連する問題の解決策は、コマンド ラインでの入力をやめ、ビルド ツールを使用することです。Java ビルド用の一般的なツールは次のとおりです。

他にもあまり一般的ではないものがあります。これらのツールは両方とも、必要なものを提供します。

于 2012-09-30T14:59:07.150 に答える
0

Ant と Maven に関する情報を追加したいだけです。

あなたの場合、アプリケーションのビルドを自動化する必要があります。基本的な解決策は何らかのスクリプトですが、まったく使用されていません。より良い解決策が存在します:

ビルドを自動化するためのスクリプトのアイデアから生まれた場合は、Ant のようなツールを使用できます。これは、構成ファイルでビルドに必要なタスクを定義する C の世界の make などのツールに少し似ています。このようなソリューションの問題は、ビルドの独自の構造を定義できることであり、プロジェクトの新規参入者はビルドのロジックを理解するのが難しい場合があります。

もう 1 つのアプローチは、実行したいビルドの種類を記述し、ほとんどの場合に行われるようにソースとリソースを整理することです (実際には規則に従ってください)。たとえば、Java ソースは src/main/java にあり、テストは src/test/java にあり、構成ファイルは src/main/resources にあるなどです。ビルドの説明では、次のように言うだけです。これは Java プロジェクトであり、War Web アプリケーションをビルドし、jUnit 4 を使用してテストを実行したいです。プロジェクトの依存関係は apache xerces と hibernate 4 です。その後、ツールはやり方を言わなくても、何をすべきかを知っている。これはmavenのやり方です。

要するに、Ant アプローチでは、やりたいことを行う方法を指定し、Maven アプローチでは、やりたいことを定義すると、ツールはデフォルトでその方法を認識します。

また、Gradle などのツールによって提供されるような、ある種のハイブリッド アプローチにも興味があるかもしれません。

詳細については :

それが役に立てば幸い

于 2012-10-01T12:37:17.070 に答える