1

私の Java アプリケーションには、次のようなパッケージ構造があります。

src/com/name/app 
src/com/name/app/do 
src/com/name/utils/db

これらのディレクトリにある Java ファイルを実行可能な jar にコンパイルするにはどうすればよいですか? 生成された JAR (jdbc) に必要なライブラリをパッケージ化する必要があります。

私は常にEclipseでこれらのことを行ってきましたが、Eclipseを使用せずにリポジトリをコンパイルする方法を数人に提供する必要があり、必要なjavacパターンを呼び出すメイクファイルまたはスクリプトを作成することを考えていました.

4

4 に答える 4

5

Antを見てください。これは理解するのに比較的簡単なビルドツールであり、要件を満たすすべてのものを提供します。開始するための簡単なスケルトンbuild.xmlは次のとおりです。

<project name="my_app_name" default="jar">

  <target name="compile">
     <javac srcdir="src" destdir="bin">
        <classpath>
           <fileset dir="lib">
              <include name="**/*.jar" />
           </fileset>
        </classpath>
     </javac>
  </target>

  <target name="jar">
     <jar manifest="manifest_file" destfile="dist/my_app_name.jar">
        <fileset dir="bin" />
        <fileset dir="lib" />
     </jar>
  </target>

どのクラスが「main」メソッドを保持しているかをJavaプロセスに通知するマニフェストファイルを作成する必要があります。ここは、マニフェストについて学び始めるのに適した場所です。

本当に雑然としたAntビルドファイルを生成する別の方法として、Eclipseプロジェクトを右クリックし、[エクスポート...]を選択してから、[一般]>[Antビルドファイル]を選択します。

とにかく、それはあなたが始めるはずです。あなたがそれらに遭遇したときにあなたはより具体的な質問をすることができます。

于 2010-03-27T01:39:47.630 に答える
4

まず、そのようなタスクにAntを使用することを検討してください。

ただし、手動プロセスを要求したため、最初に次のようにマニフェストファイルを作成する必要があります。

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Class-Path: lib/jdbc.jar lib/otherlib.jar
Main-Class: com.name.app.MainClass

Class-Pathの内容をlibsに置き換え、Main-Classをメインクラスの完全修飾名に置き換えます。

次に、次のコマンドを使用して、実際の.jarを生成する必要があります。

jar cfm app.jar MANIFEST.MF src/com/name/app/*.class src/com/name/app/do/*.class

ここで、 MANIFEST.MFは前述のマニフェストファイルであり、残りは.javaクラスが存在するフォルダーです。

最後に、アプリを実行するには、次のコマンドを実行するだけですjava -jar app.jar

于 2010-03-27T01:46:19.183 に答える
0

これを行うには、Antの使用を検討してください。 http://ant.apache.org/

于 2010-03-27T01:41:08.447 に答える
0

ApacheAntを使用してビルドスクリプトを実装する ことをお勧めします。

正しく実装されていれば、Antは使いやすく、ビルドスクリプトはJDKをインストールできる任意のプラットフォームで実行できます。実際、少しの作業で、ユーザーがAntをダウンロード/インストールする必要がないようにプロジェクトを設定することもできます。(ヒント:Ant JARファイルとラッパースクリプトをプロジェクトディストリビューションに追加します)

于 2010-03-27T01:42:24.153 に答える