【问题标题】:ant executes within eclipse but not from the command line [duplicate]ant 在 Eclipse 中执行,但不是从命令行执行 [重复]
【发布时间】:2013-10-10 22:45:44
【问题描述】:

我有一个关于蚂蚁的非常基本的问题。当我使用

在Eclipse 中执行build.xml 文件时

运行方式 -> Ant Build

然后一切正常。但是,当我尝试从命令行运行相同的build.xml 文件时,例如

ant -f build.xml

然后对于相同的类,我会收到如下错误:

Error: `package com.sun.image.codec.jpeg` does not exist

有什么想法,我该怎么办?

谢谢

【问题讨论】:

标签: java eclipse ant


【解决方案1】:

从错误中可以清楚地看出,它谈论的包 com.sun.image.codec.jpeg 不存在,它不存在。

在 Eclipse 的情况下发生的事情是该 jar/包存在于项目的构建路径中,因此它被包含在 Eclipse 的构建过程中。

作为一种解决方案,尝试将该 jar 文件包含在 ant 的构建路径中,即将该 url 放入 ant 脚本中,然后尝试从终​​端构建项目。它应该可以工作。

【讨论】:

  • ýehp,它奏效了。谢谢。我将“c:\Program Files (x86)\Java\jre7\lib\”放在 build.xml 文件中,它就可以工作了。是否可以在命令行中将此路径作为 ANT 参数提供?我不想将它放在 build.xml 文件中。谢谢
  • 不!不要引用 JRE!从 Oracle 下载 JDK。然后在C:\Windows\system32 之前将%JAVA_HOME% to _that_, and put %JAVA_HOME/bin` 指向您的路径前面。您要确保使用的是 JDK!
  • 嗨大卫,我的系统已经按照您的描述进行了配置,但这并不能解决我的问题,因为我需要的库“rt.jar”位于“jre”的“lib”文件夹中" 不是 "jdk"。问题是“ANT 1.9.2”在构建“build.xml”文件时默认不包含这个库。正如 Tushar 所指出的,在 Eclipse 中构建时,Eclipse 包含这个库,但我不知道如何在从命令行执行时指向 ANT 以包含库
【解决方案2】:

从您的简短描述中无法说明太多。第一个问题是这是 Ant 本身的问题还是您的 build.xml 文件的问题。

Eclipse 安装它自己的 Ant 版本。我建议您从Ant Project page 下载最新版本。它是 1.9.1 或 1.9.2 版本。

现在,让我们做一个简单的测试。写一个简单的build.xml:

<project>
   <echo>Hello, world!</echo>
</project>

然后,运行它。如果可行,则问题可能出在您的 build.xml 文件上。它可能取决于嵌入式 Eclipse jar。

但是,在 Grep Code 中查找此特定错误时,我发现它依赖于 Java JDK 本身。

同样,Eclipse 将附带一个嵌入式 JDK(它需要 JRE 才能运行,但需要 JDK 才能编译)。您的系统上是否安装了 Java 1.6 或 Java 1.7 JDK?你有它在你的路径?您的终端上是否设置了$JAVA_HOME 指向它? $JAVA_HOME 是否已导出(如果您使用的是 Mac、Linux 或 Unix)?

尝试这些方法,然后用你的发现更新你的问题。

【讨论】:

  • 这不是 ANT 的问题,我已经设法构建了简单的程序,并且 ant 正在构建我的 build.xml 文件的很大一部分,但是,当涉及到编译部分时,我得到这个错误。
  • 问题是,如果我可以向 ANT 添加一些输入参数,以便可以包含标准 java 库
  • 您不必包含作为 JDK 本身一部分的标准 Java 库。您是否有 $JAVA_HOME 指向 JDK 而不是 JRE?你用的是什么版本的蚂蚁?它是您安装的,还是 Eclipse 的一部分?
猜你喜欢
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多