如何更改蚂蚁的JAVA_HOME?

问题描述 投票:31回答:14

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

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

因此,如何更改ANT的JAVA_HOME属性,但仅在运行ant时更改?

编辑:echo $JAVA_HOME指向/usr/tomcat/jreecho $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
ant java-home
14个回答
13
投票

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

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

然后运行您的脚本。

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

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


6
投票

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

因此,如果键入ls $ JAVA_HOME,您会看到什么?如果执行ls $ JAVA_HOME / bin /,是否看到javac?

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


5
投票

查看shell脚本以调用ant,可能会在文件/etc/ant.conf、$HOME/.ant/ant.conf,和$ HOME / .antrc。如果执行bash -x ,它将发出调试信息,这将有助于您跟踪$ JAVA_HOME被覆盖的位置。


5
投票

在我的Windows 7计算机上设置:

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

没有工作。但是设置:

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

工作。


5
投票

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

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

另一种选择是将一个相应的tools.jar添加到类路径,但这通常是在从诸如Maven之类的其他工具启动Ant的情况下使用的。

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


3
投票

设置环境变量:JAVACMD-Java可执行文件的完整路径。用它来调用不同于JAVA_HOME / bin / java(.exe)的JVM。

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


3
投票

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

要检查该蚂蚁正在使用的JRE版本,请右键单击构建文件->选择显示有关要选择的任务的详细信息的构建蚂蚁,等等,选择要使用的JRE。

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


1
投票

JAVA_HOME如果您要编译代码,则需要指向JDK主页。检查是否存在“ / usr / tomcat / jre / bin / javac”。我对此表示怀疑。

如果没有JDK,则可以通过获取ECJ(eclipse编译器)库,将其放入'〜/ .ant / lib',然后在命令行中添加系统属性来使用,来解决该问题。该编译器-有关详细信息,请参阅Ant手册。

http://ant.apache.org/


1
投票

[在项目中设置JRE(项目属性-> Java Build Path->库,通常是最后一个条目),或在JDK(而非JRE)中将全局默认设置(Java->已安装的JRE)设置为JDK。


1
投票

使用Bash时,请尝试以下操作:

$ export JAVA_HOME=/usr/tomcat/jre

0
投票

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

例如

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


0
投票

尝试一下:

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

0
投票

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

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

-1
投票

java_home始终指向jdk,即为您提供类的编译器,jre是您的浏览器或任何已编译类的方式,因此它必须在版本中的jdk和jre之间具有匹配项。

© www.soinside.com 2019 - 2024. All rights reserved.