Настройка переменных Java в Ubuntu

#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