在rcp应用程序中引用外部jar后产生的NoClassDefFoundError的解决

在开始利用eclispe自动生成rcp应用程序后,在eclipse的插件平台下,没有导入相关的jar包,程序运行正常,但是当导入了相关jar包后,比如,在程序中利用到了common的相关包,利用了spring,hibernate等相关的包,建立构建路径后,在整个工程中没有发现异常,各类也没有显示错误信息,但运行系统程序时,却提示下列异常:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
即使是我们在程序中不引用LogFactory 类的包,也会弹出其他类的NoClassDefFoundError异常,什么原因导致了这个现象呢(在工程中显示导入文件jar包无误,发现构建路径也无误)?
原来,在构建rcp应用程序时,针对lib文件夹的添加,插件清单需要修改,在插件清单中需要添加对应的jar包的路径:用默认的plug-in manifese editor打开plugin.xml文件,选择Runtime,我们需要在ClassPath一项里做相应的修改:在插件清单中添加我们用到的外部jar包。如果不指定,我们定义的类信息和其他的资源信息就不能添加到插件应用程序中去了,则会提示ClassNotFoundException。
重新运行程序,果然正常了。 
将rcp应用程序导出时也需要注意:我们也同样需要将我们自己写的代码添加runtime的classpath中,我提供的方法是:选择右边的add按钮,添加bin目录(class文件所在的目录),有人添加的是jar,有的人提供的是一个点(即:.)。添加完后,导出,就发现应用程序能够正常地运行了,否则,又会发现ClassNotFoundException(这次提示的是我们自己编写的代码找不到了)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值