如何更改蚂蚁的JAVA_HOME?

时间:2009-02-21 15:39:26

标签: ant java-home

我在没有root的类服务器上做java工作。每当我尝试使用ant编译时,它指向错误的目录(/usr/tomcat而不是/usr/tomcat/jre)。

设置用户帐户时我们被告知要做的一件事就是将export JAVA_HOME=/usr/tomcat/jre添加到.bashrc文件中。我不知道是否应该照顾这个问题,但似乎没有。

那么,如何更改ant的JAVA_HOME属性,但仅限于运行ant的时候?

编辑:  echo $JAVA_HOME指向/usr/tomcat/jre echo $JAVA_HOME\bin指向/usr/tomcat/jrebin

问题是我正常运行蚂蚁时遇到此错误:

Unable to locate tools.jar. Expected to find it in /usr/tomcat/lib/tools.jar
Buildfile: build.xml

compile:
    [javac] Compiling 1 source file to /home/ejm244/build/classes

BUILD FAILED
/home/ejm244/build.xml:9: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.

Perhaps JAVA_HOME does not point to the JDK

Total time: 0 seconds

14 个答案:

答案 0 :(得分:12)

您可以创建自己的脚本来运行ant,例如命名为ant.sh,如:

#!/bin/sh
JAVA_HOME=</path/to/jdk>; export JAVA_HOME
ant $@

然后运行你的脚本。

$ chmod 755 ant.sh
$./ant.sh clean compile

或您希望运行的任何蚂蚁目标

答案 1 :(得分:6)

JAVA_HOME应该指向JDK的安装位置,而不是JRE。

那么,如果你输入ls $ JAVA_HOME,你看到了什么? 如果你做了$ JAVA_HOME / bin /你看到javac吗?

如果第一个不起作用,那么你没有JAVA_HOME指向正确的目录。 如果第二个不起作用,那么你需要将JAVA_HOME指向JDK而不是JRE。

答案 2 :(得分:5)

查看用于调用ant的shell脚本,可以在文件/etc/ant.conf, $ HOME / .ant / ant.conf中覆盖为.bashrc中的shell设置的$ JAVA_HOME的值。 ,和$ HOME / .antrc。如果执行bash -x&lt;路径到ant脚本&gt;它将发出调试信息,这些信息可以帮助您追踪$ JAVA_HOME被覆盖的位置。

答案 3 :(得分:5)

在我的Windows 7设备上:

JAVA_HOME="C:\Program Files\Java\jdk1.6.0_18" 

没用。但是设置:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18

的工作。

答案 4 :(得分:3)

设置env var: JAVACMD - Java可执行文件的完整路径。使用它来调用与JAVA_HOME / bin / java(.exe)不同的JVM。

参考:http://ant.apache.org/manual/running.html

答案 5 :(得分:3)

虽然环境变量JAVA_HOME设置正确,但ant可能会在每个 build.xml 或任何构建文件中使用已配置的JRE。

要查看ant正在使用的JRE版本,请右键单击构建文件 - &gt;选择build ant,显示有关要选择的任务的详细信息等,选择要使用的JRE。

建议使用项目级别设置或仅在工作区级别。

答案 6 :(得分:3)

有两种更改编译器的方法:

    在启动Ant之前
  • export JAVA_HOME=/path/to/jdk
  • 设置<javac exectuable="/path/to/javac">

另一种选择是在类路径中添加相应的tools.jar,但是如果从Maven等其他工具启动Ant,通常会采用该路径。

有关在Ant中更改Java编译器的这些(或其他)选项的更多详细信息,请参阅this article

答案 7 :(得分:1)

如果您正在尝试编译代码,JAVA_HOME需要指向JDK主目录。检查'/ usr / tomcat / jre / bin / javac'是否存在。我对此表示怀疑。

如果您没有JDK,那么您可以通过获取ECJ(eclipse编译器)库,将其放入'〜/ .ant / lib'并将系统属性添加到命令行来解决此问题。使用该编译器 - 查看Ant手册了解详细信息。

http://ant.apache.org/

答案 8 :(得分:1)

使用Bash时,试试这个:

$ export JAVA_HOME=/usr/tomcat/jre

答案 9 :(得分:1)

在项目中设置JRE(项目属性 - &gt; Java Build Path-&gt; Libraries,通常是最后一个条目),或者将首选项(Java-&gt; Installed JREs)中的全局默认值设置为JDK,而不是JRE。 / p>

答案 10 :(得分:0)

您需要将JAVA_HOME路径更改为Java SDK目录而不是Java RE目录。在Windows中,您可以在命令提示符中使用set命令执行此操作。

e.g。

设置JAVA_HOME =“C:\ Program Files \ Java \ jdk1.6.0_14”

答案 11 :(得分:0)

试试这个:

/usr/sbin/update-alternatives --config java

答案 12 :(得分:0)

从shell运行ant时,首先不需要export JAVA_HOME,这将为当前shell和所有将来的命令设置该变量,而是使用

user@host:~# JAVA_HOME=/path/to/jdk ant targets

答案 13 :(得分:-1)

java_home总是指向jdk,这是给你类的编译器, 并且jre是你的浏览器或编译类的任何东西,所以它必须在版本中的jdk和jre之间匹配。