notAquarius
@notAquarius
3 метра под уровнем грунта

Как ОС понимает, какую версию просит java?

Работаю в linux mint.
Создал программу на javaFX + jdk8, собрал в jar .
Установил на Linux 2 версии: JRE 8 и 11.
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java11-installer

И получается так, что если по умолчанию ставлю 11 версию:
sudo apt-get install oracle-java11-set-default
То программа слетает даже не запустившись ( видимо из-за того, что оттуда выпилили javaFX)
А если 8
sudo apt-get install oracle-java8-set-default
То все работает отлично. Дак вот, как мне заставить понимать систему, чтобы она запускала мою программу, именно с jre8, даже если по умолчанию в ОС стоит jre11 (но так-же установлена jre8)?
Как с этим дела обстоят в Windows, если там стоит куча java? Или же это не зависит от ОС, и нужно где-то в самой проге прописать конфиги?
  • Вопрос задан
  • 284 просмотра
Пригласить эксперта
Ответы на вопрос 6
Maksclub
@Maksclub
maksfedorov.ru
В Linux (также UNIX) $PATH — это переменная среды, используемая для указания оболочке, где искать исполняемые файлы. $PATH обеспечивает большую гибкость и безопасность для систем Linux, и, безусловно, можно сказать, что это одна из самых важных переменных среды.

Программы/скрипты, расположенные в каталоге $PATH, могут быть выполнены непосредственно в вашей оболочке без указания полного пути к ним. В этой статье вы узнаете, как установить переменную $PATH глобально и локально.
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Может и не самое лучшее решение, но можно "встроить" jvm нужной версии в приложение
https://eax.me/java-without-jvm/
Ответ написан
@frozen_coder
Java-developer
К уже отвеченному добавлю, что легко, быстро и просто устанавливать и переключаться на разные sdk и их версии можно с помощью sdkman

https://sdkman.io/usage
Ответ написан
Комментировать
В jar никак эту информацию не добавить.
Только если добавлять загрузчик, который будет искать нужную версию jvm и создавать новый процесс.
Ответ написан
Комментировать
mindtester
@mindtester
http://iczin.su/hexagram_48
по ходу ни как, кроме как установкой в путях дефолтного рантайма (в линукс возможно есть еще переменные среды для явы, но я не в курсе)

а если мы говорим об IDE типа IntelliJ - там в проекте явно указывается какой ранйтам надо с ним использовать

если нужно эксплуатировать готовые приложения, заточенные под разные рантаймы, придется выкручиваться - скорее сценариев запуска с переопределением переменных среды и/или указания явных путей запуска рантайма, в большинстве случаев, будет достаточно
Ответ написан
man alternatives

не пробовали почитать ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы