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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序打成jar包 如何处理第三方jar包相关的知识,希望对你有一定的参考价值。

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

在eclipse中你可以通过方式解决你的问题:
在eclipse的package explorer视图中点击项目工程邮件,选择“导出...”,再找到Java目录下的“Runnable JAR file”点击下一步,这个时候就是关键的地方了。在"Library handling"中有一个选项"Extract required libraries into generated JAR",这句话就是说“解压需要的包到生成的jar文件中去”。勾上这个选项以后,在将java工程打包的时候就会把依赖的jar包打到你的目标jar文件中去。

java的运行依赖java虚拟机以及第三方的很多jar库,在独立运行的时候必须要在classpath中找到这个些类库方能运行。
参考技术A 那就只能把你需要的jar包都一起打到你jar包里面了,但是这样可能到导致jar包比较大。

我不知道你是如何打jar包的,我使用eclipse开发,使用一个叫做fat jar的插件进行打包,打包的时候它会问你你要把那些用到的第三放jar包打到你的jar包里面,这个时候你就可以选择了,我曾经写过一个jar是连接SAP,从SAP把数据读到oracle数据库,所以我的jar包就包括sapjco.jar和classes12.jar,工作的很好。

不推荐用命令行打包,挺麻烦容易出错,老板总是希望你快快干完活而不是自己练手。本回答被提问者采纳
参考技术B 没办法的,肯定要导入包的啊~

你想让java程序自己找到包,这个有点异想天开,不过也不是没有可能

除非你自己把ClassLoader的工作,加载类(poi.jar、commons-lang.jar)的工作你自己写代码实现,这样肯定没问题
参考技术C 其实有一个比较恶心的方法,就是你把你需要的那两个包都解压,然后将里面的class文件全部添加到jdk1.5的包中,这样就不用再配置classpath就可以自行查到,但是还是不建议这样做,作为程序员,我觉得还是遵循原则比较好,其实就是配置一下环境变量没有什么难度啊,还可以在熟练一下...

以上是关于java程序打成jar包 如何处理第三方jar包的主要内容,如果未能解决你的问题,请参考以下文章

如何用eclipse打jar包?

05_SpringBoot打jar/war包解决第三方依赖jar包的问题

java项目打成jar包并部署到Linux服务器,以及在shell脚本中启动java程序

如何用eclipse打jar包

Java工程打成jar包(此工程引用的jar包也打进去),并指定main方法执行该怎么做?

java jar包打成可安装程序