Я использовал Java 6 в Ubuntu 11.10, но теперь я хочу обновить его до версии 7. Я установил версию 7 через PPA , как описано здесь . Если я запускаю
sudo update-alternatives --config java
, я получаю следующий вывод:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-oracle/jre/bin/java 64 auto mode
1 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
* 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 64 manual mode
Аналогично, если я запускаю:
sudo update-alternatives --config javac
, я получаю вывод:
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-oracle/bin/javac 64 auto mode
1 /usr/lib/jvm/java-6-sun/bin/javac 63 manual mode
* 2 /usr/lib/jvm/java-7-oracle/bin/javac 64 manual mode
Похоже, версия 7 уже используется по умолчанию. Но если я запускаю
java -version
или
javac -version
Вывод указывает, что версия 6 по-прежнему по умолчанию. Как установить по умолчанию версию 7?
Вам также нужно установить javac
.
sudo update-alternatives --config javac
У меня была такая же проблема. У меня был установлен Sun JDK6. После
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
перезагрузка была необходима для меня. Чем это сработало.
Редактировать: Я понял, что этого недостаточно, чтобы выполнить описанные выше шаги.
Мне также пришлось отредактировать переменную среды:
sudo nano /etc/environment
И добавить (для другой версии Java потребуется другая строка):
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
Согласно этому ответу: Как установить версию Java по умолчанию?
Попробуйте сначала указать явный путь вместе с update-alternatives --install
, а затем выполните update-alternatives
, чтобы сделать выбор:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java" 1
sudo update-alternatives --config java
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-oracle/bin/javac" 1
sudo update-alternatives --config javac
Я перепробовал почти все методы, перечисленные выше, но все же обнаружил, java -version
печатает неправильную версию, в то время как ls -al /etc/alternatives/java
уже указывал на правильную.
Итак, я запустил: which java
и обнаружил, что результат показывает, что я использовал Java из /usr/local/jdk_xxx/bin/java
, затем я удалил эту папку и перезапустил терминал. Теперь Java работает хорошо.
Надеюсь, что это поможет другим.
введите номер, который определяет желаемый путь, и нажмите ввод. в этом случае вставить 1.
наконец, попробуйте проверить версию java -version
Я полагаю, ваш двоичный файл Java указывает куда-то, кроме /etc/alternatives/java
.
Проверьте вывод: type java
Это говорит /usr/bin/java
? Если это так, то проверьте, правильно ли это указывает на альтернативы:
ls -l /usr/bin/java
должно показать, что оно указывает на /etc/alternatives/java
.
Наконец, подтвердите, что /etc/alternatives/java
сам указывает на Java-7:
ls -l /etc/alternatives/java
.
Команда update-alternatives настраивает только последнюю и предполагает, что значение по умолчанию указывает на /usr/bin/java
, что, в свою очередь, правильно связано с /etc/alternatives/java
.