#java #ubuntu #amazon-web-services #mechanicalturk
#java #ubuntu #amazon-веб-сервисы #mechanicalturk
Вопрос:
Я пытаюсь установить инструмент командной строки Amazon Mturk в Ubuntu 13.10 (32-разрядной) системе.
После настройки секретности доступа и идентификатора доступа в файле 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'
Моя информация о оболочке :
$ 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 Environment (JRE).
Буду признателен за любую помощь.
Ответ №1:
В мире 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