在netBeans中,用ant,将带第三方jar,的java程序,打包生成exe启动器

引用第三方jar:在项目文件加下新建lib文件夹,将引用的jar放入该文件夹。添加引用:项目右键-属性-库,在编译时库中添加JAR/文件夹,找到lib下的jar,然后在程序中就可以导入调用了。

打包含第三方jar:在manifest.mf中添加类路径,比如我引用的是lib文件夹下的jacob.jar:

如果引用了多个jar文件,只需要空格之后继续写就行。

其余的和不含第三方jar的一样,可以参考这篇文章,还带改.exe图标的:

https://blog.csdn.net/mysonismysun/article/details/16967593

有些时候,打包出来的.jar可以运行,但.exe程序运行会出错:invoking method error,点击确定后说,启动虚拟机失败,

可能是因为第三方包的.dll文件在打包出来之后的运行时里不存在。解决方法是找到该.jar文件的.dll文件,一般下载jar的话都会附带.dll文件的。将.dll文件复制到打包出来的runtime下的bin中,就可以运行了。

本文完结。

另外说一下我解决这个问题的过程:

将第三方.jar打包成exe的话,我在网上查了很久,大部分是说改build.xml文件的,我都已经把build.xml中大部分代码弄懂了,照着他们的改也不行,其实netBeans中集成的ant不需要自己手动编写打包,一切都写在了build-impl.xml中,在manifest.mf中也不需要指定主类Main-Class,不然可能会出现重复编译错误。

一开始.exe运行不了,我一直以为是外部包没有被打包进来,于是想办法把它和项目生成的包打成一个包。但是都没用,查了两天,在stoneflow上找到一种方式可以将运行时的出错情况输出到.txt:

在txt中知道错误的原因原来是找不到dll,说明我前面一直没找到问题所在,知道错在哪就容易解决了。

另外,想自己用javafxpackager在命令行打包的可以参考这篇帖子(不含第三方jar):

http://tieba.baidu.com/p/4206532998?pid=80407908127&cid=0&from=prin#80407908127?from=prin

猜你喜欢

转载自blog.csdn.net/Michaelia_hu/article/details/86137927
今日推荐