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: *
转载于:https://blog.51cto.com/lxpandyxl/1950311