Конкретная java для sh скрипта

У меня есть два sh скрипта. Один для запуска требует java не младше 17, другой - не старше 16. Как я могу определить конкретную версию для каждого скрипта, подскажите пожалуйста?

Я пробовал прописывать полный путь до папки java. Permission denied.


Ответы (2 шт):

Автор решения: Eugene X

Какую Java запустить определяет переменная окружения JAVA_HOME и бинарник, перед строкой скрипта добавляешь alias javac=/путь/до/17/bin/javac && JAVA_HOME=/путь/до/17й script1.sh перед вторым соответственно alias javac=/путь/до/16/bin/javac && JAVA_HOME=/путь/до/16й script2.sh Ну и конечно посмотри что-бы PATH не перемешивался...

→ Ссылка
Автор решения: Александр Александров

Решил проблему через выбор необходимой java каждый раз при запуске sh скрипта через update-alternatives.

сначала ввёл update-alternatives --сonfig java и с помощью этого узнал пути установленных jdk

введите сюда описание изображения

Потом добавил в скрипты следующие команды

update-alternatives --set java /usr/lib/jvm/bellsoft-java16-full-amd64/bin/java;
# для java 16

update-alternatives --set java /usr/lib/jvm/bellsoft-java17-full-amd64/bin/java;
# для java 17
→ Ссылка