cmd 运行jar文件

时间:2024-02-26 10:18:59

将java工程打成jar包,但第三方jar包并没有包含在包中,当在命令行中运行jar包时,出现类找不到的异常,

在网上看到解决办法是将第三方jar包放到JDK的扩展类文件夹中(%JAVA_HOME%/jre/lib/ext),

再运行,还是出现同样的错误,我的java工程要调用webservice,webservice工程中也用到了相同的jar包,

在启动服务器的时候,不能正确部署webservice,应该是webservice工程中的jar包和JDK中的jar包有了冲突。

通过不断地试验,终于成功了!

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.<init>(Manifest.java:52) 
        at java.util.jar.JarFile.getManifest(JarFile.java:158)

异常,换行时前面加两个空格,最后还有一个回车)!

5、将修改好的MANIFEST.MF文件覆盖掉原来的;

6、在命令行下执行jar包:java -jar a.jar