Проблема установки JAVA_HOME

5

В ~/.bash_profile я установил следующее:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/bin/java
export PATH=$PATH:/usr/lib/jvm/java-7-openjdk-i386/bin

После сохранения и закрытия я побежал:

sudo su
source .bash_profile

echo $PATH приносит

[email protected]:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-7-openjdk-i386/bin

which java is

/usr/bin/java

Но если я запустил smartgit, появится следующее предупреждение

[email protected]:/usr/share/smartgithg/bin$ ./smartgithg.sh 
Warning: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java/bin/java does not exist

Почему «java» не указывает на новую установленную java? И Почему содержит $ PATH bin/java/ дважды?

    
задан user1662013 26.03.2014 в 09:34
источник

3 ответа

6

Вы можете выбрать java-версию, используя команду update-alternatives .

Запустите команду ниже в терминале.

sudo update-alternatives --config java

И введите номер выбора, который вы хотите использовать.

Вот так:

Внимание: приведенное выше описание - это процедура изменения версии по умолчанию. Это не ответ на этот вопрос, но должен помочь вам установить дом JAVA

    
ответ дан byaruhaf 26.03.2014 в 09:50
0

Ubuntu использует систему update-alternatives для управления установкой Java JDK или JRE. Это позволяет вам иметь несколько версий Java, но все же контролировать, какой из них используется по умолчанию.

Вот почему which java не показывает версию, которую вы установили; /usr/bin/java - это просто символическая ссылка. Если вы запустите ls -l /usr/bin/java , вы увидите что-то вроде:

lrwxrwxrwx 1 root root 22 Jul  4  2013 /usr/bin/java -> /etc/alternatives/java

, и если вы пройдете по тропе, запустив ls -l /etc/alternatives/java , вы увидите что-то вроде:

lrwxrwxrwx 1 root root 39 Jul 15  2013 /etc/alternatives/java -> /usr/lib/jvm/java-7-oracle/jre/bin/java

, но точный путь будет зависеть от выбранной вами версии.

Вы можете выбрать, какую версию Java вы хотите запустить с помощью этой команды:

sudo update-alternatives --config java

Ваш путь содержит bin/java дважды, потому что вы неправильно настроили $JAVA_HOME . $JAVA_HOME должно указывать на корневой каталог для вашей установки Java; в вашем случае, /usr/lib/jvm/java-7-openjdk-i386/ . Вы указали его на сам файл java .

Вам не нужно добавлять $JAVA_HOME к вашему $PATH , если вы не устанавливаете Java вручную и не используете update-alternatives , потому что /usr/bin уже находится в вашем $PATH .

    
ответ дан David Edwards 28.03.2014 в 15:33
0

Вы неверно указали свою переменную JAVA_HOME в файле ~/.bash_profile . Измените переменную JAVA_HOME на:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/

, а затем выполните source ~/.bash_profile

Это должно решить вашу проблему.

    
ответ дан jobin 28.03.2014 в 15:36