点击“File->Export”:
选择“JAR file”,依次按提示操作即可。
如需想让jar可执行,通常要有能执行的main方法。一般在打包时就可设置Main class。mac系统下如图:
配置完成后manifest.mf文件定义如下所示(也可手动配置,效果一样,当然也可不配置):
Manifest-Version: 1.0
Main-Class: util.PropertiesUtil
此时可执行下面的命令:
java -jar /Users/cxc/Downloads/test.jar
当然了,jar包中不只一个类,所以也可以用下面的命令指定类来执行:
java -cp /Users/cxc/Downloads/test.jar study.collection.BitSetTest
注意:上面的命令执行的必须是有main方法的class,其中cp可换成classpath。
如果执行的类引用了其它jar包,那又该怎么办呢?
只需修改manifest.mf文件即可:
Manifest-Version: 1.0
Main-Class: util.PropertiesUtil
Class-Path: lib/dom4j-1.6.1.jar lib/jaxen-1.1-beta-7.jar
注意:
<1> manifest.mf文件最后一行必须是一个空行。
<2> lib/dom4j-1.6.1.jar和lib/jaxen-1.1-beta-7.jar之间用一个空格隔开。
<3>每个冒号后有一个空格。
可在导出界面选择设置好的manifest.mf文件:
值得一提的是,如果仅仅在java文件中import相应jar而不实际使用,编译时可能会被优化掉,此时可能不需要依赖的jar也能运行。
还有一个问题,比如打包前用的是utf8编码,执行jar包时用的却是系统编码,系统编码可能是GBK等其它编码,这样就会存在问题。执行jar时可以指定编码:
java -Dfile.encoding=utf-8 -cp /Users/cxc/Downloads/test.jar util.PropertiesUtil