我正在尝试在Ubuntu 13.10(32位)系统上安装Amazon Mturk命令行工具。
在mturk.properties文件中设置访问密码和访问标识符后,我运行了getBalance.sh文件,下面是输出。
./getBalance.sh
You must set JAVA_HOME (i.e. export JAVA_HOME=/usr)
If you do not have JAVA on your machine, you can download it from http://java.sun.com/
./../bin/invoke.sh: 41: exit: Illegal number: -1
以下是我系统上的java信息
$ file `which java javac`
/usr/bin/java: symbolic link to `/etc/alternatives/java'
/usr/bin/javac: symbolic link to `/etc/alternatives/javac'
我的shell信息是:
$ echo $SHELL
/bin/bash
但是,$ JAVA_HOME命令给了我一个空行。
我可以看到我机器上安装的java:
$ which java
/usr/bin/java
$ java -version
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.13.10.1)
OpenJDK Server VM (build 24.51-b03, mixed mode)
然后我运行了以下命令:
$ export JAVA_HOME=/usr/bin/java
$ echo $JAVA_HOME
/usr/bin/java
我认为现在一切都是正确的,但如果我运行getBalnace.sh,这就是我得到的
$ ./getBalance.sh
./../bin/invoke.sh: 79: exec: /usr/bin/java/bin/java: not found
我检查了我的环境变量,下面是结果
$ env | grep java
JAVA_HOME=/usr/bin/java
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
路径是:
$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sid/.rvm/bin
我仍然无法弄清楚我在哪里做错了。下面的句子非常混乱,没有太多信息可供使用。
非常感谢任何帮助。
答案 0 :(得分:2)
在Java世界中,JAVA_HOME指的是安装JDK或JRE的目录。所以你应该能够在
找到java可执行文件$JAVA_HOME/bin/java
在您的情况下,找到安装java的物理位置。这样的事情应该有效:
readlink -f /usr/bin/javac
典型的回应是
/usr/lib/jvm/java-7-openjdk-amd64/bin/javac
对于此响应,您应将JAVA_HOME设置为
/usr/lib/jvm/java-7-openjdk-amd64