update-java-alternatives vs update-alternatives --config java

69

В Ubuntu 12.04 LTS я установил JDK7, Eclipse Sun и Arduino IDE. Я хочу, чтобы Arduino использовал OpenJDK 6 и хотел, чтобы Eclipse использовала JDK 7. Sun.

Из моего понимания мне нужно вручную выбрать, какую Java использовать перед запуском каждого приложения. Это привело меня к команде update-java-alternatives -l . Когда я запускаю это, я вижу только следующее:

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64

, но когда я запустил update-alternatives --config java , я вижу следующее:

*0  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   auto mode
1  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   manual mode
2  /usr/lib/jvm/jdk1.7.0/bin/java                   manual mode
3  /usr/lib/jvm/jre1.7.0/bin/java                   manual mode

Я не понимаю, почему update-java-alternatives не отображает те же 3 варианта. Я также не понимаю, как переключаться между OpenJDK6 и JDK7. Как я могу использовать OpenJDK6 для разработки Arduino и Sun JDK7 для разработки Eclipse / Android?

    
задан Stan Smith 03.07.2013 в 00:32
источник

2 ответа

97

sudo update-alternatives --config java

Настраивает значение по умолчанию для программы «java». Это виртуальная машина Java.

sudo update-alternatives --config javac

Настраивает компилятор Java по умолчанию.

Вы также можете видеть это, потому что первая команда перечисляет множество «JRE» (Java Runtime Environment), а программа просто называется «java».

Если я проверяю, какая версия используется, выдает команду java -version или же javac -version, Я вижу, что каждая команда меняет используемую программу.

Однако использование update-java-alternatives с версией JDK меняет обе программы для меня. Используя первые команды, вы можете использовать Java VM и Java Compiler из разных JDK.

Итак, вам нужно установить пакет openjdk-7-jdk . Похоже, вы установили openjdk-7-jre .

Что касается переключения для разных сред разработки:

Вы говорите о том, чтобы начать IDE самостоятельно с разными версиями Java или с использованием разных версий в IDE для компиляции и запуска вашего приложения?

Для 1 .: Вы можете указать, какую JVM использовать в eclipse.ini, как описано здесь . Я не знаю, как это сделать для IDE Arduino.

Для 2 .: В Eclipse вы можете выбрать JRE / JDK, который будет использоваться в Window - > Предпочтения - > Java - > Установленные JRE. А под Java - > Компилятор, если вы пожелаете, вы можете выбрать более старое соответствие Java.

EDIT: Эта страница DigitalOcean также имеет очень хорошее объяснение всего, что связано с Java на Ubuntu.

    
ответ дан Benjamin Maurer 10.12.2013 в 12:17
источник
13

update-java-alternatives - это программа для обновления альтернатив для установок jre/jdk .

update-alternatives является символической системой управления ссылками для Linux (я уверен, что здесь мало новостей).

Вы можете и действительно должны использовать вместе update-java-alternatives и update-alternatives вместе.

Во-первых, убедитесь, что все альтернативы настроены правильно. java и javac - лишь немногие. Существует javadoc , rmic , serialver и другие, заменяя указанные выше переменные: native2ascii и /opt/jdk1.8.0_40/bin/native2ascii должны сообщать, если альтернатива установлена и / или выбрана.

Когда все альтернативы настроены, вы можете создавать ссылки в /usr/lib/jvm для вашей ручной установки.

Чтобы настроить update-java-alternatives , вы должны использовать скрытый файл с тем же именем, что и ваш каталог, но с префиксом a. (Точка).

Надеюсь, что это поможет.

Библиография

man -S 8 update-java-alternatives

Ссылка

Ссылка

    
ответ дан fmmarques 23.08.2015 в 20:11