在Ubuntu中设置Java变量

在Ubuntu中设置Java变量,java,ubuntu,amazon-web-services,mechanicalturk,Java,Ubuntu,Amazon Web Services,Mechanicalturk,我试图在Ubuntu 13.10(32位)系统上安装AmazonMTurk命令行工具 在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

我试图在Ubuntu 13.10(32位)系统上安装AmazonMTurk命令行工具

在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\u 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
我仍然不知道我哪里做错了。下面的句子很混乱,没有多少信息

  • 如果下载了Unix发行版,则必须设置 MTURK_CMD_HOME环境变量指向命令行 工具安装位置
  • 如果下载了Unix发行版,则必须将JAVA\u设置为HOME 环境变量指向Java标准版运行时 环境(JRE)安装位置

任何帮助都将不胜感激。

在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