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: *