ps:這個已經在別的地方寫過了,發佈在此處進行整理下,方便自己查看。
正常情況下,用netbeans開發,會添加默認的jdk也會引入jdk中一些沒有的包,比如數據庫連接的jdbc的包,項目部署的時候,往往需要生成一個jar包,在帶一個引入jar的文件夾,有時候,還會因爲路徑問題,反覆改,或者版本問題無法運行,所以打成一個包,很方便,步驟如下:
1.左上角切換項目-文件,點擊構建,然後在build.xml裏面</project>前面添加如下內容(可以什麼都不用改):
<target name="package-for-store" depends="jar"> <!-- Change the value of this property to be the name of your JAR, minus the .jar extension. It should not have spaces. <property name="store.jar.name" value="MyJarName"/> --> <property name="store.jar.name" value="test"/> <!-- value裏面的是最終生成的項目名稱,可改可不改 --> <property name="store.dir" value="store"/> <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/> <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/> <delete dir="${store.dir}"/> <mkdir dir="${store.dir}"/> <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip"> <zipgroupfileset dir="dist" includes="*.jar"/> <zipgroupfileset dir="dist/lib" includes="*.jar"/> <manifest> <attribute name="Main-Class" value="${main.class}"/> </manifest> </jar> <zip destfile="${store.jar}"> <zipfileset src="${store.dir}/temp_final.jar" excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/> </zip> <delete file="${store.dir}/temp_final.jar"/> </target>
2.然後在build.xml上面點擊右鍵-運行目標-其他目標,然後選擇package-for-store。
3.用dist裏面的jar包中的文件的MANIFEST.MF替換掉store裏面的jar包中的同名文件,當然要用到解壓工具。
4.store裏面的jar文件,就是我們需要的jar的包,只需要把這個文件和對應的jdk拷貝過去,就可以直接運行。
5.在放一個MANIFEST.MF文件,假如以上超過困難,可以研究下規律。
Manifest-Version: 1.0
JavaFX-Version: 2.2
implementation-vendor: xxxx
implementation-title: test
implementation-version: 1.0
JavaFX-Application-Class: fmcake.Fmcake
JavaFX-Class-Path: lib/jtds-1.3.1.jar
permissions: sandbox
Created-By: JavaFX Packager
Main-Class: com/javafx/main/Main
codebase: *