Ant无法启动,给出了主类错误

时间:2013-10-21 14:25:31

标签: java ant

我正在运行基本操作系统(基于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

我尝试过“source / etc / environment”。运行'echo $ ANT_HOME'会显示正确的路径。我已经尝试将ant移动到其他位置并重置变量。没有。我有点迷茫。请帮忙!

5 个答案:

答案 0 :(得分:6)

你应该在$ 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

答案 1 :(得分: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。更好的是,如果我在/usr/local/bin/usr/bin之前加入/bin,我首先会在/usr/local/bin中选择二进制文件。这样,我可以确保运行我安装的版本超过默认值。例如,我的机器在/usr/bin/ant中附带了Ant 1.7,但我想使用Ant 1.9.1。我可以安装Ant 1.9.1,这将是我的默认版本。

答案 2 :(得分:0)

使用npm install安装ant时遇到同样的错误。当我尝试从官方存储库抛出pacman -S apache-antapt-get install apache-ant - 对于Debian / Ubuntu)安装时,它开始适合我。

答案 3 :(得分: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在bug评论中所说:

  

您的脚本/usr/share/java-utils/java-functions存在问题   " openjdk版本"因为它期待" java版本"就像Java 7那样。

$ 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')

------

答案 4 :(得分:0)

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