2013-03-09 83 views
0

我正在使用Ant 1.7.1在eclipse中構建我們的應用程序。我的應用程序將在WAS 6.1上部署。在我的代碼中使用sun.security。*包類和子包(我知道不推薦使用這個包,但沒有其他選擇)。如何覆蓋ant build中第三方jar的特定jre罐子

當我在WAS中部署耳朵時,出現了sun.security.x509.AlgorithmId類的ClassDefNotFoundError。我發現這個類沒有出現在IBM Jre所需的包中(這是不推薦使用sun包的原因)。

我不得不將IBM jar放入我的開發類路徑中,並且通過將IBM jar放在eclipse中的JRE jar之前 - 使用這些jar而不是我的本地JRE jar。這工作正常。

現在,我的問題是,如何做ANT中罐子的相同排序。我知道如何在ANT類路徑中指定jar的順序。但是,如何將IBM罐放在ANT的JRE罐子之前?

我試着在引導類路徑中設置IBM jar。但是這樣做,ANT無法找到java.lang,因爲java classpath現在不在引導類路徑中。

   <javac source="1.5" 
      target="1.5" 
      bootclasspathref="project.class.path" 
      destdir = "${build.classes.dir}" 
      srcdir = "${work.dir}/src" 
      debug="true" 
      encoding="UTF-8" 
    > 
    <classpath path="${java.library.path}"/> 

    </javac> 

請告知如何完成此操作。

任何幫助將不勝感激。謝謝

回答

0

我得到了這個解決方案。我做了以下更改爲'javac'任務:

 <javac source="1.5" 
       target="1.5" 
       destdir = "${build.classes.dir}" 
       srcdir = "${work.dir}/src" 
       debug="true" 
       encoding="UTF-8" 
     > 
     **<compilerarg value="-Xbootclasspath/p:${toString:project.class.path}"/>** 
    </javac> 

螞蟻它的工作!