【问题标题】:ant's java task can't find a jar in the jre/lib/ext directoryant的java任务在jre/lib/ext目录下找不到jar
【发布时间】:2010-10-31 19:54:45
【问题描述】:

我把“stax-utils.jar”放在扩展目录([JAVA_HOME]/jre/lib/ext),但是ant的java任务找不到,给出:

java.lang.NoClassDefFoundError: javanet/staxutils/IndentingXMLStreamWriter

奇怪的是,它适用于编译:ant 的 javac 任务 可以 找到它。问题仅在于运行代码,以及 ant 的 java 任务...

  • 如果我从命令行使用 java,则会找到 jar,我可以使用其中的类。

  • 如果我明确地给 ant 扩展目录中特定 jar 的类路径,它也可以工作。

(我以前见过这个问题,使用 XML 库之一。)

【问题讨论】:

标签: java ant jar


【解决方案1】:

尝试将其添加到 ANT_HOME/lib

【讨论】:

    【解决方案2】:

    你确定你用的是你的JAVA_HOME对应的JVM吗?

    【讨论】:

    • 是的。 ${java.home} 给出包含 lib/ext/staxutils.jar 文件的 jre
    • 实际上......你似乎是对的......我做了更多的狩猎,并且 ${java.vm.version} 给出了 10.0-b19......但是命令行 java -version 给出了 1.6.0_04-b12 奇怪的是我没有安装 build 10(除非 eclipse 或 netbeans 在我尝试它们时将它安装在某个地方)。
    • 更正:10.0-b19 来自“Java HotSpot(TM) Client VM(build 10.0-b19,混合模式,共享)”,我已经确认这是 JAVA_HOME 中的那个(由转到目录,然后输入“./java -version”
    • 它应该在 JAVA_HOME/lib/ext,而不是 jre/lib/ext。我认为您将其放置在错误的位置。你想在 lib/ext 中拥有它的原因是什么?它会给你这个问题很多次......
    • @Thorbjørn 我没有偏好:但我的 Java 1.6 安装中不存在 JAVA_HOME/lib/ext。我能找到的唯一 ext 在 JAVA_HOME/jre/lib/ext 中。我会尝试创建你建议的目录(但我认为如果它是给我的,安装会创建它)。
    【解决方案3】:

    为时已晚..但我想知道这是什么原因......

    因为它与JVM的类加载有关......而这个类加载与CLASSPATH有关..我认为CLASSPATH没有设置导致问题很久了......

    不知道现在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2011-02-19
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多