我正在尝试使用命令“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
。这里需要改变什么?
该$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
最终代表一个符号链接。
看起来 Ant 正在假设/usr/bin/java
开始。也许你不需要设置它。
或尝试添加前导斜杠(/usr
而不是usr
)。
JAVA_HOME 不应指向 java 可执行文件,而应指向 javac 编译器所在的“bin”的父目录。
通常,'/usr/bin/java' 是指向其他地方的实际可执行文件的符号链接,例如,'/usr/lib/java/jdk*/bin/java',在这种情况下,java home 应该是 /usr /lib/java/jdk*.