第三方jar 打包问题

fuyueyue 2009-04-12 10:58:11
我做的了个连接mysql的小程序,eclipse调试运行正常。可是打成jar包后,运行没有反应。
我用far-jar打包也没有反应,用命令行运行也没有反应。
网上查的打包时要设置classpath 可还是没有反应。
请给我指点下
...全文
1578 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
香辣牛肉面 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bao110908 的回复:]
哎,这个问题我至少回复过五次了,再说一次吧。

如果会打包,那可能就知道 MANIFEST.MF 这个文件吧,一个 jar 要能运行的话,必须在这个文件中
设置 Main-Class: 这个我想已经设置好了。

如果要使用到第三方的 jar 包,同样也需要在这个文件中设置一下。需要在这个文件中加上,
下面路径前的 xxx/ 先暂时称为 X 目录。


Java code

C……
[/Quote]必须没用
zhsx316 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dengxu11 的回复:]
受教了

引用 3 楼 bao110908 的回复:


哎,这个问题我至少回复过五次了,再说一次吧。

如果会打包,那可能就知道 MANIFEST.MF 这个文件吧,一个 jar 要能运行的话,必须在这个文件中
设置 Main-Class: 这个我想已经设置好了。

如果要使用到第三方的 jar 包,同样也需要在这个文件中设置一下。需要在这个文件中加上,
下面路径前的 xxx/……
[/Quote]

大哥 你再说十边 ,你试过没 行不行啊
旭子 2011-09-27
  • 打赏
  • 举报
回复
受教了
[Quote=引用 3 楼 bao110908 的回复:]

哎,这个问题我至少回复过五次了,再说一次吧。

如果会打包,那可能就知道 MANIFEST.MF 这个文件吧,一个 jar 要能运行的话,必须在这个文件中
设置 Main-Class: 这个我想已经设置好了。

如果要使用到第三方的 jar 包,同样也需要在这个文件中设置一下。需要在这个文件中加上,
下面路径前的 xxx/ 先暂时称为 X 目录。

Java code
Clas……
[/Quote]
旭子 2011-09-27
  • 打赏
  • 举报
回复
什么网站,病毒? 幸好我机器是Linux

[Quote=引用 5 楼 wbkys 的回复:]

全部说些无用的方法 楼主注意了

分享 jar打包后数据库连接不上真正解决办法JavaSE

http://i.97qt.cn/space-16-do-blog-id-123.html
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wbkys 的回复:]

全部说些无用的方法 楼主注意了

分享 jar打包后数据库连接不上真正解决办法JavaSE

http://i.97qt.cn/space-16-do-blog-id-123.html
[/Quote]

谁说的没用?
wbkys 2009-08-20
  • 打赏
  • 举报
回复
全部说些无用的方法 楼主注意了

分享 jar打包后数据库连接不上真正解决办法JavaSE

http://i.97qt.cn/space-16-do-blog-id-123.html
fuyueyue 2009-06-02
  • 打赏
  • 举报
回复
没有办法给你分了,不过谢谢你的回答
  • 打赏
  • 举报
回复
哎,这个问题我至少回复过五次了,再说一次吧。

如果会打包,那可能就知道 MANIFEST.MF 这个文件吧,一个 jar 要能运行的话,必须在这个文件中
设置 Main-Class: 这个我想已经设置好了。

如果要使用到第三方的 jar 包,同样也需要在这个文件中设置一下。需要在这个文件中加上,
下面路径前的 xxx/ 先暂时称为 X 目录。

Class-Path: xxx/mysql-connector-java-x.x.x-bin.jar xxx/abcdefg.jar xxx/12345.jar


多个 jar 以至少一个空格分隔开来。

需要注意的是 Class-Path: 后面必须得有一个空格,并且在这个文件的最后必须有两个空格,
否则这个文件就是无效的。(MANIFEST 规范相当得死)

这还没完,设置好后,把这个设有 Main-Class 和 Class-Path 的 MANIFEST.MF 文件以及 class 文件
打包成 my.jar(文件名任意),需要注意的是第三方的 jar 文件不要打包打进去。

把这个 my.jar 放在一个目录下,同时在这个目录下新建一个上面的 X 目录,把第三方的那些 jar 文件
复制这个 X 目录下,然后返回上一层 my.jar 所在目录,执行 java -jar my.jar 就能成功运行了。

另外还有一个方法不需要设置 MANIFEST.MF 的 Class-Path 不过不推荐使用,就是把第三方的 jar 文件
复制到 Java 的扩展类加载路径中,也就是在 %JRE_HOME%/lib/ext 目录中。


【推荐参考文档】

[1] JAR MANIFEST, http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest
[2] Java Tutorials, Adding Classes to the JAR File's Classpath, http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html
[3] Java Tutorials, Installed Extensions, http://java.sun.com/docs/books/tutorial/ext/basics/install.html
fuyueyue 2009-04-12
  • 打赏
  • 举报
回复
用到了其它的jar,但如何把其它的jar包打到一起。总是不成功
rumlee 2009-04-12
  • 打赏
  • 举报
回复
可能是打包的问题吧,试试用jar命令打包试试,eclipse自己也带有打包的工具啊。如果你的程序里面调用了其它jar,要么使用打包工具打包到你的jar一起,要么运行的时候带上classpath。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧