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

buildpath都已经添加好了然后把项目导出成jar文件然后运行这个文件会提示缺少我刚才buildpath引用的包就是这个B样... build path 都已经添加好了

然后把项目导出成jar文件

然后运行这个文件会提示缺少我刚才build path引用的包
就是这个B样
展开
 我来答
yanzhangyanyan
推荐于2017-09-03 · 超过56用户采纳过TA的回答
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:73万
展开全部
你导出的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我,今天上班没事干
追问
这个.mf文件在我生成的jar文件里。  但是我无法再打开这个文件修改它

刚你说的。可以再导出时Exlipse自动加入jar。。 这个怎么弄?

在哪一步 叫什么??
追答

1.右键此jar文件--打开方式--winrar--将里面的manifest.mf解压到桌面--记事本方式打开并编辑它--编辑好以后保存--用鼠标直接将其拖入解压时的winrar的界面里--提示是否替换--确定即可。

2.用myeclipse导出。我给你贴图吧。

我默认都保存到桌面上啊,**.jar你自定义导出的jar的名字;

至于最后一张图片中build.xml点击browse浏览,选桌面,保存到桌面,点击完成,之后你将发现桌面上多出两个文件,一个文件夹,其中一个是**.jar,另个是build.xml,还有一个同名文件夹,里面都是第三方jar包。

最后,这个build.xml是ant工具的配置文件,你把它研究一下,然后考到项目里面,右键运行,就会重复以上操作,等于是利用ant来打包,很是方便。

198901245631
推荐于2017-09-23 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1738万
展开全部
这是因为生成jar文件的位置没有找到对应的jar包。
可能解决办法一:
第一步:在生成jar的位置,创建一个文件夹,名称为lib;
第二步:将所有的依赖jar放到lib下,之后再运行即可。
可能解决办法二:
第一步:将所有的依赖jar放到jar包同级路径下,之后再运行即可。
备注:以上两种方式肯定能够解决问题,并且方法二的可能性比较大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyan2221236
2012-08-01
知道答主
回答量:21
采纳率:0%
帮助的人:11.5万
展开全部
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包
追问
怎么讲?

怎么调?
追答
你就改下MATNIFEST.MF文件就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lypzyy_9907
2012-08-01 · TA获得超过368个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:216万
展开全部
在项目中引用的包最好是把包拷贝到项目中的一个位置,然后引用,或是直接把引用的包拷贝到lib下,这样你再重新打包试试
追问
我用的包 就在工程的lib包下面。  导入也是从这里到的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黎友源
2012-08-01 · TA获得超过5057个赞
知道大有可为答主
回答量:4637
采纳率:50%
帮助的人:2570万
展开全部
百度
追问
你妹
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式