java程序打成jar包 如何处理第三方jar包

现在有一j2se程序,依赖于jdk1.5、poi.jar、commons-lang.jar。
打成jar包后,依赖于jdk的部分代码是可以执行的。但是依赖于poi.jar、commons-lang.jar这两个包的程序没有办法执行。
我知道是因为在classPath中无法找到上述两个包的缘故。但不希望每次都通过设置classpath的方式去运行这个jar程序。
请问通过什么样的打包办法可以让程序不用设置classpath而找到其所依赖的第三方jar包。谢谢javaeyer能予以指导!

3个回答

[b]
将第三方的jar包,加入到最后的jar包中。

然后 修改 jar/META-INF/Mainfest 文件

添加: Class-Path : 依赖jar包的路径(相对于根路径的路径)
[/b]

你应该看看java的classloader加载机制,如果你把第三方jar包放在classpath下的话当程序执行时将找不到所需要的jar包,上面的那个回答我尝试过,但是还不行。
你可以通过:
1.将需要的jar包放到jre/lib/ext下面,但是不方便移植
2.将项目整个打成个jar包 通过批处理文件来运行
java -cp xxx.jar;xxxxx.jar package.Xxx

利用Java的extension机制来加载 而外的jar包,在自己的电脑上可以,但是放在别人的电脑上,就不行了,因为找不到jar包。

还是,[b]将所有的依赖jar包,和自己的程序打包到一块。[/b]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问