2012-02-27 4 views
-2

クラスパスで指定された外部ライブラリを使用するJavaプログラムがあります。私は今、Javaプログラムをスタンドアロンのjarファイルにしたいと思います(プログラムを実行している間、他のものに私のIDEを使うことができます)。クラスパスを保持したままjarに変換する

既存の.javaファイルを実行可能なjarファイルにするにはどうすればよいですか?

クラスファイル、マニフェストファイル、ライブラリのjarファイル(クラスパスで指定されたもの)を含むjarファイルを作成できますが、クラスが見つからないために間違っているように見えますエラー。

+1

詳細、詳細、詳細助けることができる) – KevinDTimm

+0

[JAR内のJARを含むクラスパス]の可能な複製(http://stackoverflow.com/questions/183292/classpath-including-jar-within-a-jar) –

+0

.javaファイルはちょうど – qrtt1

答えて

0

あなたのためのAntスクリプト。あなたが逃したのは、クラスパスの生成をjarタスクの文字列として行うことでした。

<target name="all"> 
    <property name="dir" value="yourProjectDir" /> 
    <property name="name" value="$yourProjectName" /> 

    <!-- clean --> 
    <delete dir="temp/" /> 
    <mkdir dir="temp/bin/" /> 

    <!-- prepare libs --> 
    <copy todir="temp/libs/"><fileset dir="${dir}/lbs/" /></copy> 

    <!-- prepare classpath --> 
    <pathconvert property="classpath" pathsep=" "> 
     <path><fileset dir="temp/libs/" /></path> 
     <chainedmapper><flattenmapper /><globmapper from="*" to="libs/*" /></chainedmapper> 
    </pathconvert> 

    <!-- compile --> 
    <javac destdir="temp/bin/" srcdir="${dir}/src/" target="1.6" source="1.6" includeAntRuntime="false"> 
     <classpath> 
      <pathelement location="temp/bin/" /> 
      <fileset dir="temp/libs/" /> 
     </classpath> 
    </javac> 

    <!-- jar --> 
    <jar destfile="temp/${name}.jar" basedir="temp/bin/"> 
     <manifest> 
      <attribute name="Main-Class" value="Main" /> 
      <attribute name="Class-Path" value="${classpath}" /> 
     </manifest> 
    </jar> 

    <!-- zip jar + libs --> 
    <zip destfile="${name}-${version}.zip"> 
     <fileset dir="temp" includes="${name}.jar, libs/" /> 
    </zip> 
</target> 
0

以下は、コマンドプロンプトからスタンドアロンアプリを実行する手順です。 1.サンプルのJavaファイルを作成し、d:¥sample¥Hello.javaのような特定の場所に保存します。 2.コマンド・プロンプトを開き、javaクラスをコンパイルし、Hello.jarファイルのようにjarファイルを作成します。 3. classpathを環境ファイル(D:\ sample \ Hello.jar; のように)4. Javaクラスを実行すると、動作します(d:sample> java Helloこんにちは

関連する問題