最近想把写的一个JFace项目打包成jar文件,想双击就能运行的那种,结果打包过程遇到了许许多多问题,折腾了我好久,最终终于打包完成,我把打包过程中遇到的问题总结一下,如果打的包不能运行,请挨个对比检查,是否所有的东西都符合要求。
至于怎么打包,怎么导出,在网上搜索教程,很多的,我这里只总结配置MANIFEST.MF文件的问题。因为这个配置文件是打包过程中最重要的,jar文件无法运行基本都是这个配置文件的问题。
1.打包时最好自己手动创建META-INF签名文件夹,里面创建MANIFEST.MF文件
2.MANIFEST.MF文件中必须包含【Manifest-Version:】,如果是可以直接运行的jar文件,还用【Main-Class:】指定主类。
3.引用的依赖包导出时不用选择!因为要调用时根本访问不到jar包内部,必须在外部单独存放。
4.所有的冒号后面必须有一个空格,不然运行必出错!
5.引用的依赖包用【Main-Class:】描述,如果有多个包,中间用空格分开,包名不宜过长,如果有很多包名特别长的包,用回车加空格隔开。最重要的是,最后一个包名后面加一个回车!
6.依赖包的路径,一定要用相对路径!!!绝对路径绝对会出错的。
附上我打包成功时的签名文件内容:
最后顺带提一句,javaw -jar这个命令一般用于GUI图形程序,如果打包的程序是图形界面的,最好使用此命令,如果程序运行异常,异常信息会以弹窗的形式的弹出来,否则程序出错时,只会看到屏幕一闪,什么都没了。相反,如果你的程序不是图形程序,最好使用java -jar命令。
附:1.Eclipse插件项目导出后,直接放到Eclipse安装目录下面的plugins目录下,重启就可以了。
2.如果打开后界面乱码,原因是Eclipse用Ant打包的,默认使用的系统编码GBK,可以想办法配置Ant使用UTF-8,最简单的办法是在 build.properties文件中加javacDefaultEncoding.. = UTF-8 就可以了。