Вопрос: Что происходит, когда установлены две версии команды терминала?


Например, у меня установлены OpenJDK 6 и 7. Если я убегу     javac foo.java will будет компилировать мою программу как программу на Java 6 или программу Java 7?


4
2018-01-23 20:28


Источник


Несколько дубликатов, т. Е .: установить jre-7  как установить java - user unknown


Ответы:


В дистрибутивах на базе Debian есть так называемая «альтернатива», которая позволяет установить более одной программы, которая выполняет ту же функцию (в нее также входят разные версии одной и той же программы, такие как Java 6 и Java 7). Как указывает @ user15936, система работает, манипулируя символическими ссылками, поэтому «javac» может указывать на исполняемый файл либо из OpenJDK 6, либо из OpenJDK 7

Команда для управления вышеупомянутыми символическими ссылками (процесс на самом деле более сложный, чем тот, который включает в себя некоторую конфигурацию, например, изменения manpages и т. Д.) - вызывается update-alternatives, Вы можете узнать, как его использовать, набрав man update-alternatives в терминале.

Чтобы ответить на ваш вопрос, можно определить другой способ определения исполняемого файла javac:

update-alternatives --display javac

4
2018-01-23 23:22



Существует даже специализированная update-java-alternatives, - user unknown


Ответ в зависимости от того, что связано с /usr/bin/javac

Это будет выполнено.

Вы можете это увидеть, перейдя к /usr/bin/ и см. ссылку javac подключается, делая ls -l javac,


1
2018-01-23 20:33





Вы должны ввести терминал javac -version и там вы получите свой ответ ...


-1
2018-01-23 20:32



В этом ответе нет ничего плохого, особенно для пользователей, где Oracle Java (JVM / JDK) больше не предоставляется как .deb, и они устанавливаются вручную. Очень рекомендуемое чтение, особенно о скрипте «update java», который будет устанавливать различные альтернативы - webupd8.org/2011/09/how-to-install-oracle-java-7-jdk-in.html - doug
Я не проголосовал, но java и javac могут принадлежать к разным версиям. - user unknown