如何在代码里指定使用哪个jar的类呢?
项目经历了好几年,不断的加入jar包,现在项目里存在poi2.0和poi3.8的jar包,我想程序引用3.8的jar包的类,如何做啊。真纠结。。。。
想实现的功能:想使用POI 在excel插入图片。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
项目经历了好几年,不断的加入jar包,现在项目里存在poi2.0和poi3.8的jar包,我想程序引用3.8的jar包的类,如何做啊。真纠结。。。。
想实现的功能:想使用POI 在excel插入图片。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(15)
咋个全路径啊。包名,类名都一样的。
放上两个jar也可能会出现莫名其妙的问题,而且很难调试出来。
我遇见过commons-codec中MD5的问题,两个不同版本就差一个版本号,结果不一样。
全路径
花时间改吧,没这么容易
+1
小心jar包冲突。。最好把老的给去掉。。程序一般会向下兼容的
这是啥东西,百度瞅瞅。。。
会jar hell的
IDE修改了classpath顺序,那生产环境不能修改啊。
是不是跟jar在classpath中的先后顺序也有关系?
是的啊。仁兄有没有办法解决啊?自己写ClassLoad来加载?
回复
把老的包去掉吧,这个问题要彻底解决一下
回复
我也想啊。项目组不同意,不想花力气去修改。还得承担风险。。项目太老啦。
回复
OSGi可以解决, 但代价太大, OSGi允许同一path的class存在多个版本, 你这样的, 不可能, 使用哪个版本的class完全依赖于classpath的先后顺序
类是由ClassLoad实例和类全名来识别的,
在项目中添加不同版本的重复包或同名类经常会出稀奇古怪的问题。