子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 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 陳剛 閱讀(1713) 評論(0)  編輯  收藏 所屬分類: Eclipse

          主站蜘蛛池模板: 和静县| 东山县| 九江县| 两当县| 景谷| 博白县| 大同市| 南阳市| 吴堡县| 密云县| 诸暨市| 武鸣县| 天全县| 潞西市| 平罗县| 临沭县| 博兴县| 孝感市| 北海市| 四川省| 昌乐县| 两当县| 临潭县| 内江市| 长泰县| 叶城县| 赤壁市| 时尚| 忻城县| 河曲县| 凤凰县| 宣化县| 星子县| 冕宁县| 五峰| 盘山县| 津市市| 独山县| 青铜峡市| 侯马市| 新沂市|