Eclipse中jar包的导入问题

时间:2022-12-22 09:07:04
一个eclipse的editor插件工程
要用到自己编写的两个jar包

将引用的jar包放到jre的ext目录下时一切正常
将jar包导入工程时,代码环境下imporg或调用都ok
但运行eclipse application时会报NoClassDefFoundError错误

奇怪的是其中一个jar包中的类可以找到,另一个则不行

两个jar包的区别在于,不能找到的jar包中调用了本地dll,是由于这个原因吗?
ps.引用的两个jar包是别人写的,很大,没办法去掉调用dll的部分做测试,郁闷中...

10 个解决方案

#1


NoClassDefFoundError应该是包中的类有问题,搂主可以看看是在哪个发生的错误。

#2


可以肯定类没有问题,这两个被引用的jar包是在jbuilder中编写的,可以正常运行,确定是没问题的

在eclipse中
如果是一般工程,导入jar包,在代码中调用报错的类成功,执行结果也正确
但如果换成plugin project的话,代码环境编译没问题,但启动eclipse application运行插件的时候,就报类找不到 :(

这问题困扰了我两天了,烦,头疼

#3


*.jar如果不放在lib文件夹中就会出现你所说的问题。主要是如果在开发的环境的时候你只要配了路径它能够找到就可以了。而在服务器上必须要找服务器中lib文件夹。跟你开发环境配置的路径是不同的。

#4


这个...
我的jar包是放入了工程目录下的lib目录里的
在工程的配置中也加入到了Extra classpath里的

现在的问题是说两个jar包是用相同的方法导入和调用的
但执行插件功能时,一个jar包中的类可以找到,另一个jar包中的类却找不到

应该不是我引用或导入的问题,因为相同的方法一个ok另一个却不行
我个人感觉应该是从两个jar包的区别入手,却苦无头绪

大家有谁做过调用本地dll的插件工程吗
给个意见吧

#5


path里的位置换下

#6


rp问题......

#7


我现在用的就是调用dll的工程
只要将dll及所需数据放在跟类相同目录下就可以啊

#8


up

#9


问题解决了
原来调用不成功的jar包用的是loadClass的方式,后来改成了Class.forName的调用就好了
理论上这两种方法应该是一样的效果,就是不知道为什么会出现不同,耽误了2天多的时间 :(

不过现在又有了新的问题,还请大家帮个忙 :)
我上面说的两个jar包A.jar和B.jar,其中B.jar调用了一个第三方的jar包C.jar,运行时从B.jar中报C.jar的类找不到
但是C.jar在插件工程中的导入方法和那两个jar包完全一样

同时我为了测试,在自己的工程代码中明确调用了C.jar中报找不到的类,运行成功,没有异常
而后面紧跟着的一句调用B.jar的代码就报C.jar中的类“NoClassDefFoundError”
这又是为什么呢?

#10


mark

等待高手

#1


NoClassDefFoundError应该是包中的类有问题,搂主可以看看是在哪个发生的错误。

#2


可以肯定类没有问题,这两个被引用的jar包是在jbuilder中编写的,可以正常运行,确定是没问题的

在eclipse中
如果是一般工程,导入jar包,在代码中调用报错的类成功,执行结果也正确
但如果换成plugin project的话,代码环境编译没问题,但启动eclipse application运行插件的时候,就报类找不到 :(

这问题困扰了我两天了,烦,头疼

#3


*.jar如果不放在lib文件夹中就会出现你所说的问题。主要是如果在开发的环境的时候你只要配了路径它能够找到就可以了。而在服务器上必须要找服务器中lib文件夹。跟你开发环境配置的路径是不同的。

#4


这个...
我的jar包是放入了工程目录下的lib目录里的
在工程的配置中也加入到了Extra classpath里的

现在的问题是说两个jar包是用相同的方法导入和调用的
但执行插件功能时,一个jar包中的类可以找到,另一个jar包中的类却找不到

应该不是我引用或导入的问题,因为相同的方法一个ok另一个却不行
我个人感觉应该是从两个jar包的区别入手,却苦无头绪

大家有谁做过调用本地dll的插件工程吗
给个意见吧

#5


path里的位置换下

#6


rp问题......

#7


我现在用的就是调用dll的工程
只要将dll及所需数据放在跟类相同目录下就可以啊

#8


up

#9


问题解决了
原来调用不成功的jar包用的是loadClass的方式,后来改成了Class.forName的调用就好了
理论上这两种方法应该是一样的效果,就是不知道为什么会出现不同,耽误了2天多的时间 :(

不过现在又有了新的问题,还请大家帮个忙 :)
我上面说的两个jar包A.jar和B.jar,其中B.jar调用了一个第三方的jar包C.jar,运行时从B.jar中报C.jar的类找不到
但是C.jar在插件工程中的导入方法和那两个jar包完全一样

同时我为了测试,在自己的工程代码中明确调用了C.jar中报找不到的类,运行成功,没有异常
而后面紧跟着的一句调用B.jar的代码就报C.jar中的类“NoClassDefFoundError”
这又是为什么呢?

#10


mark

等待高手