3

我正在运行 Elementary OS(基于 Ubuntu 12),但在运行 apache ant 时遇到问题。它在重新启动之前早些时候工作,所以我不确定会发生什么变化。

我在 /etc/environment 中定义了环境变量,如下所示:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$ANT_HOME/bin"
JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386"
ANT_HOME="/opt/ant"
ANT_OPTS="-Xms256M -Xmx512M"

所以应该设置我的Java和Ant环境变量。我正在尝试使用 ant 和 'ant clean deploy' 进行部署,但我的终端出现错误:

Error: Could not find or load main class org.apache.tools.ant.launch.Launcher

我试过“源/etc/environment”。运行 'echo $ANT_HOME' 显示正确的路径。我尝试将 ant 移动到不同的位置并重置变量。没有什么。我有点迷路了。请帮忙!

4

5 回答 5

7

您应该在 $PATH 中使用它之前定义 $ANT_HOME

  JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386"
  ANT_HOME="/opt/ant"
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$ANT_HOME/bin"

仔细检查 $ANT_HOME/lib 下是否有 ant-launcher.jar

于 2013-10-21T14:31:28.990 回答
0

使用 npm install 安装 ant 时出现同样的错误。当我尝试从官方存储库 throw 安装时pacman -S apache-antapt-get install apache-ant-- 对于 Debian/Ubuntu),它开始对我正常工作。

于 2015-03-29T11:15:57.867 回答
0

ANT_HOME正如其他人所说,在您在路径中声明它之前似乎没有设置它。

我对这些事情采取了稍微不同的方法。我通常将路径设置为相当简单的东西,而不是不断更新我的 PATH:

 PATH="/usr/local/bin:/bin:/usr/bin/:$HOME/bin"

然后,我将各种二进制文件的硬链接添加到我的/usr/local/bin目录中。

$ cd $ANT_HOME/bin  # All the Ant binaries
> for binary in *
> do
> sudo ln -s $PWD/$binary /usr/local/bin
> done

现在,我不必添加$ANT_HOME/bin到我的$PATH. 更好的是,如果我在and/usr/local/bin之前包含,我将首先选择二进制文件。这样,我可以确保运行我安装的版本而不是默认版本。比如我的机器自带Ant 1.7,但是我想用Ant 1.9.1。我可以安装 Ant 1.9.1,这将是我的默认版本。/usr/bin/bin/usr/local/bin/usr/bin/ant

于 2013-10-21T15:18:41.130 回答
0

我在使用 jdk 1.8 时遇到了这个错误。但是,我遇到了可能与 OpenJDK 1.8 相关的 RHEL 6.5 错误: https ://bugzilla.redhat.com/show_bug.cgi?id=1149605

本质上,它已在 RHEL 5.7 中包含的 jpackage-utils-1.7.5-3.13 中得到修复。

问题,正如 Javier Ramirez 在错误评论中所说:

您的脚本/usr/share/java-utils/java-functions在“openjdk 版本”方面存在问题,因为它需要像 Java 7 一样的“java 版本”。

$ mkdir /usr/share/java-1.8.0
$ mkdir /usr/lib/java-1.8.0
$ diff /usr/share/java-utils/java-functions.orig /usr/share/java-utils/java-functions
149,150c149,150
<             -e '/java \(full \)*version "/s/'$re'/<<<\1>>>/' \
<             -e '/java \(full \)*version "/s/.*<<<\([^>]\{1,\}\)>>>.*/\1/p')
---
>             -e '/[java|openjdk] \(full \)*version "/s/'$re'/<<<\1>>>/' \
>             -e '/[java|openjdk] \(full \)*version "/s/.*<<<\([^>]\{1,\}\)>>>.*/\1/p')

------
于 2016-05-12T20:56:15.593 回答
0

我正在使用 ant 附带的 RHEL(在 /usr/bin/ant 中)和 /usr/share/ant 中的 ant 库。如上所述, ant -version 给出了“找不到”错误。我安装了我自己的 ant 版本(在 /home/Ant 中,因为我在 /home 中有很多空间)并将 ANT_HOME 放在我的 .bash_profile 中,将 $ANT_HOME/bin 放在我的 PATH 和 $ANT_HOME 和 $ANT_HOME/bin 中(永远测量)在我的 CLASSPATH 中。然后 ant 工作(当用作我自己时,而不是作为 root 时)。

于 2017-05-16T15:05:10.087 回答