Как использовать команду update-alternatives --config java
Я устанавливаю Apache Solr на Linux Debian (Squeeze). Мне было поручено установить sun-java jdk 1st. Затем мне сказали, что я должен использовать команду sudo update-alternatives --config java
, чтобы удостовериться, что конкретная java (sun-java) является средой исполнения по умолчанию. Но когда я запускаю эту команду, я получаю:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
1 /usr/bin/gij-4.4 1044 manual mode
2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
Press enter to keep the current choice[*], or type selection number:
Итак, какое число я должен выбрать, чтобы включить sun-java в качестве среды выполнения по умолчанию?
Кроме того, что именно означает автоматический и ручной режимы? Если я выберем 3 выше и запустим команду update-alternative, я получаю тот же вывод, что и выше, снова ничего не изменилось, кроме того, что * теперь находится перед 3, хотя он все еще читает ручной режим.
Есть ли способ подтвердить, что то, что я сделал, является правильным?
Ответы
Ответ 1
Вы заметите большое изменение при выборе параметров, если после этого введите "java -version". Поэтому, если вы запустите update-alternatives --config java
и выберите опцию 3
, вы будете использовать реализацию Sun.
Кроме того, что касается auto
vs manual mode
, выбор должен вывести его из auto mode
за эту страницу, указав:
При использовании опции --config
альтернативы будут перечислять все выбор для группы ссылок, имя которой является главной ссылкой. Вы затем будет предложено указать, какой из вариантов использовать для ссылки группа. После внесения изменений группа ссылок больше не будет auto mode
. Вам нужно будет использовать опцию --auto
для возврата к автоматическому состоянию.
И я считаю, что auto mode
устанавливается, когда вы устанавливаете JRE/JDK первого и того же типа.
Ответ 2
update-alternatives
является проблематичным в этом случае, поскольку он заставляет вас обновлять все элементы в зависимости от JDK.
Для этой конкретной цели пакет java-common
содержит инструмент под названием update-java-alternatives
.
Просто использовать его. Сначала укажите установки JDK, доступные на вашем компьютере:
[email protected]:~# update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
И затем выберите один из них:
[email protected]:~# update-java-alternatives -s java-1.7.0-openjdk-amd64
Ответ 3
Есть много других бинарных файлов, которые нужно связать, поэтому я думаю, что лучше попробовать что-то вроде sudo update-alternatives --all
и выбрать правильные альтернативы для всего остального, кроме java
и javac
.
Ответ 4
Взгляните на
https://wiki.debian.org/JavaPackage
В нижней части этой страницы другой метод описывается с помощью команды из пакета java-common
Ответ 5
Предполагая, что в JOP в JOP в /opt/java/jdk 1.8.0_144 установлен:
- Установите альтернативу для javac
sudo update-alternatives --install/usr/bin/javac javac/opt/java/jdk1.8.0_144/bin/javac 1
- Проверьте/обновите конфигурацию альтернатив:
sudo update-alternatives --config javac
Если для Javac есть только одна альтернатива, вы получите сообщение об этом, в противном случае выберите опцию для нового jdk.
Чтобы проверить, что все настроено правильно, выполните следующие действия:
который javac
/USR/ бен/Javac
ls -l/usr/bin/javac
lrwxrwxrwx 1 корень root 23 сен. 4 17:10/usr/bin/javac → /etc/alternatives/javac
ls -l/etc/alternatives/javac
lrwxrwxrwx 1 корень root 32 Sep 4 17:10/etc/alternatives/javac → /opt/java/jdk1.8.0_144/bin/javac
И наконец
javac -version
javac 1.8.0_144
яй!
Повторите для java, keytool, jar и т.д. по мере необходимости