`

JAVA打包成JAR文件直接运行二

阅读更多

打包的项目中使用了其它的jar包,如我的项目TestJar,我打包成文件名为Test.jar

项目引用了其他的jar包,那么打包要运行正确的话,要手动修改MANIFEST.MF文件。Main-Class: com.lwf.main.TestMain打包的时候选择的有main函数的类,即双击Test.jar包将运行这个类。
Class-Path: ../lwf.jar       

看我放的目录结构:我把Test.jar打包放在E:\,另把lwf.jar放在E:\lib目录下。所以Class-Path应改为:../lib/lwf.jar

..表示当前目录的上层目录。

 

另外要特别注意MANIFEST.MF格式问题MANIFEST.MF

主要是Class-Path:如果系统用到的包有很多那么不能全放在一行上,那样会报“长度太长”错误:

详细格式看:

java用jar命令打包mf文件line too long? 
  
用java jar命令打包程序时,清单文件包含有太多jar文件的话,每行不得超过78(87 )个字符, 
否则出现line too long错误,需要换行编写;jar文件间用空格分开,每行最后也要有空格(最 
后一行可没有),而且每行开始也要有空格。 
如: 
Manifest-Version: 1.0
Main-Class: com.springjava14.aop.App
Class-Path:口lib/spring-1.1.5.jar口
口lib/commons-logging-1.0.4.jar口
口lib/aopalliance-1.0.jar口
口lib/cglib-full-2.0.2.jar 
注:口为空格。 


 

格式:除最后一行外,每行开始和结束都需要一个空格

上面是使用ECLIPSE打包的示例,不过由于格式的问题自己编辑Manifest文件比较麻烦。可以使用fat jar插件来打包jar文件。

下载fat jar:http://fjep.sourceforge.net/#inst

下载完后解压到eclipse插件目录即可。

打开eclipse,在项目名称上点右键可以看到Build fat jar选项;使用这个插件的好处,不论你项目中引入了本项目lib目录中的jar或者引入了其它外部目录的jar,打包的时候都会将需要用到class文件打在一起,所以不用关心Manifest文件格式问题了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics