2012-06-10 18 views
1

我试图使用命令“Ant构建” .The消息称java home is not defined correctly we cannot execute /usr/bin/java//bin/java <notice the 2 slashes>设置Java家里

如果我使用它返回usr/bin/java命令echo $JAVA_HOME。这里需要改变什么?

+0

检查你的〜/ .bash_profile,可能$ JAVA_HOME在那里定义 – Raffaele

回答

4

$JAVA_HOME变量不会引用java可执行文件,而是引用bin/java可执行文件本身的父目录。这就是Ant抱怨无法执行一些神秘的/usr/bin/java//bin/java的原因。

例如,在我的情况下(Ubuntu的12.04,OpenJDK的)Java主设置为

/usr/lib/jvm/java-6-openjdk-amd64/jre 

其中显然存在/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java,其中/usr/bin/java最终代表一个符号链接。

1

看起来像Ant假设/usr/bin/java开始。也许你不需要设置它。

或尝试添加一个前导斜杠(/usr而不是usr)。

0

JAVA_HOME不应该指向java可执行文件,而应该是编译器所在的'bin'父目录。通常'/ usr/bin/java'是在其他地方的实际可执行文件的符号链接,例如'/ usr/lib/java/jdk */bin/java',在这种情况下,java home应该是/ usr/lib/java/jdk *。