在Ubuntu中设置Java变量

时间:2014-07-07 08:10:33

标签: java ubuntu amazon-web-services mechanicalturk

我正在尝试在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

我仍然无法弄清楚我在哪里做错了。下面的句子非常混乱,没有太多信息可供使用。

  • 如果您下载了Unix发行版,则必须设置 MTURK_CMD_HOME环境变量指向您的命令行 工具安装位置。
  • 如果您下载了Unix发行版,则必须设置JAVA_HOME 环境变量指向Java Standard Edition Runtime 环境(JRE)安装位置。

非常感谢任何帮助。

1 个答案:

答案 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