1

我正在尝试使用命令“ant build”。消息说java home is not defined correctly we cannot execute /usr/bin/java//bin/java <notice the 2 slashes>

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

4

3 回答 3

4

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

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

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

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

于 2012-06-10T15:48:45.650 回答
1

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

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

于 2012-06-10T15:47:59.283 回答
0

JAVA_HOME 不应指向 java 可执行文件,而应指向 javac 编译器所在的“bin”的父目录。

通常,'/usr/bin/java' 是指向其他地方的实际可执行文件的符号链接,例如,'/usr/lib/java/jdk*/bin/java',在这种情况下,java home 应该是 /usr /lib/java/jdk*.

于 2012-06-10T15:58:10.163 回答