java项目导出为jar文件 运行jar文件会报错。 缺少我已经加好的包

2024-11-06 15:33:53
推荐回答(5个)
回答(1):

你导出的jar包要用到其他jar包,那么你导出的jar包里有这样一个文件MANIFEST.MF,你有没有设置,它就是用来设置main类,和class_path的,在这里你要把需要的jar都写上,至于路径都是相对于你导出的这个jar包的相对位置。我给你一段示例:
***************************************************************************************
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 1.5.0_22-b03 (Sun Microsystems Inc.)
Main-Class: com.nari.syslog.server.Syslog4jServer
Class-Path: . lib/jna.jar lib/log4j-1.2.14.jar lib/commons-pool.jar li
b/joda-time-2.1.jar lib/syslog4j-0.9.46-bin.jar lib/h2-1.3.159.jar li
b/CollectRmiServerC.jar lib/quartz-all-1.6.4.jar lib/activemq-all-5.3
.2.jar lib/commons-collections-3.2.jar lib/dom4j-1.6.1.jar lib/jaxen-
1.1-beta-7.jar

***************************************************************************************
看到 lib/XX.jar形式了么,至于这个lib就是和导出的jar包同级目录下面的一个文件夹,然后将所需要的其他jar包都放到lib文件夹下,再运行该导出jar文件,就会找到所引用的jar包了,搞熟练了就没什么了,这些都可以借用MyEclipse的导入导出功能,这些配置性的东西都会自动生成,没必要记。
你可以继续追问,不行的话,再call我,今天上班没事干

回答(2):

这是因为生成jar文件的位置没有找到对应的jar包。
可能解决办法一:
第一步:在生成jar的位置,创建一个文件夹,名称为lib;
第二步:将所有的依赖jar放到lib下,之后再运行即可。
可能解决办法二:
第一步:将所有的依赖jar放到jar包同级路径下,之后再运行即可。
备注:以上两种方式肯定能够解决问题,并且方法二的可能性比较大。

回答(3):

classpath设置的有问题,jxl的jar包没有找到 。你写的这种执行jar的方式,java -jar TestCase.jar
必须在jar中META-INF目录下的MATNIFEST.MF文件中加入
Main-Class: ly.A 替换为你的主类

Class-Path: lib/snmp6_0.jar lib/grammatica-1.5.jar lib/commons-dbcp.ja
r lib/commons-dbutils-1.4.jar lib/commons-pool.jar lib/h2-1.3.159.jar
lib/log4j-1.2.15.jar 替换为你所引用的所有jar包

回答(4):

在项目中引用的包最好是把包拷贝到项目中的一个位置,然后引用,或是直接把引用的包拷贝到lib下,这样你再重新打包试试

回答(5):

百度