记一下JavaFX打包jar找不到主类的问题

如题,自己做了几个小工具,想写个GUI,然后用JavaFx完成,IDEA中使用没问题,打包jar,然后就找不到主类了,网上也没找到对应的解决办法。

不靠谱的方法:将Artifacts由普通jar改为JavaFX Application,配置参数,然而没卵用,不知道是哪里配错了,没找到文档。

解决方法1:手动打包:javafxpackager -createjar -appclass [类全名(没.class后缀)] -srcdir [.class编译文件位置,IDEA的话就在production下] -outdir [输出目录] -outfile [输出文件名]       缺点是麻烦

解决办法2(推荐):观察了一下方法一中生成的jar,其实就是在/META-INF/MANIFEST.MF上加了几个字段,所以手动加上就行了,亲测可用。先在Artifacts中调整为普通的jar,自动生成/META-INF/MANIFEST.MF,修改/META-INF/MANIFEST.MF为:

Manifest-Version: 1.0
Permissions: sandbox
JavaFX-Version: 8.0
Created-By: JavaFX Packager
Main-Class: zhangtao.gui.FindAndMoveGUI

多了三个字段,作用一目了然。

所以以后只要加上

Permissions: sandbox
JavaFX-Version: 8.0
Created-By: JavaFX Packager
这三个字段就行了。

你可能感兴趣的:(java)