0

我正在使用 Ant 1.7.1 在 Eclipse 中构建我们的应用程序。我的应用程序将部署在 WAS 6.1 上。因为我在我的代码中使用 sun.security.* 包类和子包(我知道不建议使用这个包,但没有其他选择)。

当我在 WAS 中部署 ear 时,我得到了 sun.security.x509.AlgorithmId 类的 ClassDefNotFoundError。我发现 IBM Jre 中所需的包中不存在此类(这就是不建议使用 sun.packages 的原因)。

我不得不将 IBM jars 放在我的开发类路径中,并通过将 IBM jars 放在 eclipse 中的 JRE jars 之前,让 eclipse 使用这些 jars 而不是我的本地 JRE jars - 排序和导出。这工作正常。

现在,我的问题是,如何在 ANT 中对罐子进行相同的排序。我知道如何在 ANT 类路径中指定 jar 的顺序。但是如何在 ANT 中将 IBM jar 放在 JRE jar 之前?

我尝试在引导类路径中设置 IBM jar。但是这样做,ANT 无法找到 java.lang,因为 java 类路径现在不在引导类路径中。

              <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>

请告知如何完成这项工作。

任何帮助都感激不尽。谢谢

4

1 回答 1

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>

蚂蚁它工作!

于 2013-03-10T06:16:12.050 回答