将Java工程打成jar包,但第三方jar包并没有包含在包中,当在命令行中运行jar包时,出现类找不到的异常,
解决办法1:
将第三方jar包放到JRE的扩展类文件夹中(%JAVA_HOME%/jre/lib/ext),
解决方法2:
修改jar包的MANIFEST.MF文件
详细如下:
通过不断地试验,终于成功了!
1、新建文件夹test位于D盘;
2、将用到的所有第三方jar包放在文件夹lib下,再将lib放在test下;
3、导出的java工程jar包a.jar也放在test下;
4、修改工程jar包META-INF文件夹下的MANIFEST.MF配置文件:
Manifest-Version: 1.0
Main-Class: cn.golaxy.yqpt.client.main.GatherMain
Class-Path: lib/soapmonitor-1.5.jar
lib/spring-aop.jar
写明main函数的包路径(注意:冒号后加一个空格)!
在class-path后写上引用到的所有jar包(注意:要分行写,并不是说一行写一个jar包,只要保证这一行不要太长就好,否则会出现Exception in thread “main” java.io.IOException: line too long
at java.util.jar.Attributes.read(Attributes.java:356)
at java.util.jar.Manifest.read(Manifest.java:167)
at java.util.jar.Manifest.(Manifest.java:52)
at java.util.jar.JarFile.getManifest(JarFile.java:158)
异常,换行时前面加两个空格,最后还有一个回车)!
5、将修改好的MANIFEST.MF文件覆盖掉原来的;
6、在命令行下执行jar包:java -jar a.jar。