【问题标题】:how to override specific jre jars with third party jars in ant build如何在 ant build 中使用第三方 jar 覆盖特定的 jre jar
【发布时间】:2013-03-10 14:16:12
【问题描述】:

我正在使用 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 jars 放在 JRE jars 之前?

我尝试在引导类路径中设置 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>

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

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: ant


    【解决方案1】:

    我有一个解决方案。我对“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>
    

    蚂蚁成功了!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多