2012-02-27 58 views
-2

我有一個Java程序使用外部庫,其位置通過類路徑指定。現在我想將Java程序變成一個獨立的jar文件(所以我可以在程序運行時使用我的IDE來處理其他事情)。轉換爲罐子,同時保留類路徑

如何將現有的.java文件轉換爲可執行的jar文件?

我能夠製作一個jar文件,其中包括類文件,清單文件和庫文件(這是在類路徑中指定的),但仍然看起來是錯誤的,因爲我沒有找到類錯誤。

+1

細節,細節,細節(換句話說,我們需要它們能夠幫助) – KevinDTimm 2012-02-27 13:10:17

+0

[JAR中的Classpath包括JAR]的可能的重複(http://stackoverflow.com/questions/183292/classpath-including-jar-within-a-jar) – 2012-02-27 13:15:11

+0

.java文件只是源代碼,不能執行 – qrtt1 2012-02-27 13:16:35

回答

0

爲你的Ant腳本。您錯過的是將jarpath任務作爲字符串生成的類路徑。

<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 in環境文件(如D:\ sample \ Hello.jar; )4.現在運行你的java類,它會工作(d:sample> java你好

相關問題