子在川上曰

  逝者如斯夫不舍昼夜
随笔 - 71, 文章 - 0, 评论 - 915, 引用 - 0
数据加载中……

在RCP项目中找不到JAR包的异常的解决

陈刚/www.chengang.com.cn 2006-02-17

  前段时间看到有版友,因为RCP中找不到JAR包的问题,弄得焦头烂额。由于没有版友的开发环境,所以也很难给他提出错误原因在哪。授人以鱼,不如授人以渔。今天我也遇到了一次了,就把我解决这个问题的思路写出来,以供参考。
 
今天RCP加入一个新的模块,其中需要用DOM4J读入一个XML文件。进行的过程如下
 
1.将dom4j-1.6.jar复制到LIB目录中
 
2.在maven的project.xml中加入了引用,这是为了在构建项目时,从jar仓库自动将dom4j-1.6.jar复制到项目lib目录。
  <dependency>
   <groupId>dom4j</groupId>
   <artifactId>dom4j</artifactId>
   <version>1.6</version>
   <properties>
    <plugin.library>true</plugin.library>
   </properties>
  </dependency>
 
3.在项目下maven update_libs ,将项目的lib库更新一下(这时第1步手动复制可以不用,如果你是用ANT或手工构建项目的,第2、3步省略)
 
4. 在build.properties加入对dom4j-1.6.jar的引用
jars.extra.classpath = lib/commons-codec-1.3.jar,\
                       lib/dom4j-1.6.jar,\
                       lib/jboss.jar,\
 
这时已经可以在Eclipse中开发dom4j的程序了,。在Application环境下做了dom4j的测试,没有问题。虽然没有在.classpath中加入对dom4j-1.6.jar的引用,但项目属性中的"java build path"->"Libraries"中的"Plug-in Dependencies"中已经有了对dom4j-1.6.jar的引用。
 
然而运行RCP程序进行测试时却出现了错误,界面和console没有提示错误原因。是程序错误吗?于是将程序注释至最简,还是不行。难道是包没找到的错误?哦忘记去看看错误日志了,于是转到runtime-adminconsole\.metadata目录下打开.log文件,果然是类未找到错误异常,如下:
java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader
 
但application下怎么能找到dom4j包呢,难道有什么地方的对dom4j我没加上?于是打开plugin.xml,在它的图形界面里翻了翻,发现runtime选项卡的classpath没有加入对dom4j包的引用。runtime项顾名思议就是运行时的依赖项。在这里加上对dom4j包的引用后,错误解除。
 
加的方法有两种,最简单的通用图形界面加,另外也可以通过META-INF/MANIFEST.MF文件来加。我习惯直接操作文件,当初为了加入dom4j包的引用在项目根目录下翻了一遍,却没注意META-INF目录下还有一个配置。


posted on 2006-03-07 14:32 陈刚 阅读(1701) 评论(0)  编辑  收藏 所属分类: Eclipse


只有注册用户登录后才能发表评论。


网站导航: