forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.LINUX

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 11.10.2019, 17:02
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Хочется странных альтернатив

Rinat H. Sadretdinow написал(а) к All в Oct 19 15:33:02 по местному времени:

Нello All!

А вот как бы так бы сделать чтобы, к примеру, одна программа использовала одну версию Java, а остальные другую? Про возможность установки* разных версий Java я знаю, про пакет alternatives тоже знаю, но тут получается что для запуска первой программы надо сначала через alternatives указать конкретную версию Java, после запускать программу, для остальных такая же последовательность, только версию Java указать через alternatives другую, а после уже программы запускать. А вот как бы обойтись без этого онанизма с каждый раз вызовом alternatives и указываения нужной версии Java? Чтобы при запуске определённой программы определённая версия Java, уже имеющаяся и установленная в системе, подсовывалась этой программе автоматом? Можно конечно "единственную особую программу" запускать через скрипт, в котором сначала вызывать alternatives, выставлять требуемую версию Java, вызывать программу, после через alternatives возвращать общую для всех остальных программ версию Java, но это как-то неаккуратненько: а если во время работы первой программы понадобиться запускать другую, которая с уже установленной для первой программы через alternatives версией Java не умеет работать? Существует ли *стандартная возможность сделать такой вот финт ушами?

Bye!

--- GoldED+/LNX 1.1.5-b20170303
Ответить с цитированием
  #2  
Старый 11.10.2019, 19:51
Anatoliy Sablin
Guest
 
Сообщений: n/a
По умолчанию Хочется странных альтернатив

Anatoliy Sablin написал(а) к Rinat H. Sadretdinow в Oct 19 18:28:53 по местному времени:

Нello, Rinat Н. Sadretdinow.
On 11.10.2019 15:33 you wrote:

RS> А вот как бы так бы сделать чтобы, к примеру, одна программа
RS> использовала одну версию Java, а остальные другую? Про возможность
RS> установки разных версий Java я знаю, про пакет alternatives тоже
RS> знаю, но тут получается что для запуска первой программы надо
RS> сначала через alternatives указать конкретную версию Java, после
RS> запускать программу, для остальных такая же последовательность,
RS> только версию Java указать через alternatives другую, а после уже
RS> программы запускать. А вот как бы обойтись без этого онанизма с
RS> каждый раз вызовом alternatives и указываения нужной версии Java?
RS> Чтобы при запуске определённой программы определённая версия Java,
RS> уже имеющаяся и установленная в системе, подсовывалась этой
RS> программе автоматом? Можно конечно "единственную особую программу"
RS> запускать через скрипт, в котором сначала вызывать alternatives,
RS> выставлять требуемую версию Java, вызывать программу, после через
RS> alternatives возвращать общую для всех остальных программ версию
RS> Java, но это как-то неаккуратненько: а если во время работы первой
RS> программы понадобиться запускать другую, которая с уже
RS> установленной для первой программы через alternatives версией Java
RS> не умеет работать? Существует ли стандартная возможность сделать
RS> такой вот финт ушами?

JAVAНOME=/path/to/jvm1 $JAVAНOME/bin/java -jar app1.jar
JAVAНOME=/path/to/jvm2 $JAVAНOME/bin/java -jar app2.jar

Но тут зависит от приложения. Иногда приложение идёт вместе со своей jvm и запускается через sh-скрипт, в котором задаётся jvm. Иногда достаточно задать нужное значение переменной JAVA_НOME. Если jvm >= 11 версии, тогда там есть штатный механизм jlink, который для твоего приложения сформирует образ (и включит туда только те модули, которые нужны для приложения), запускаемый через sh-скрипт.


--
Best regards!
Posted using Нotdoged on Android
--- Нotdoged/2.13.5/Android
Ответить с цитированием
  #3  
Старый 11.10.2019, 20:12
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Хочется странных альтернатив

Rinat H. Sadretdinow написал(а) к Anatoliy Sablin в Oct 19 18:52:20 по местному времени:

Нello Anatoliy!

11 Oct 19 18:28, you wrote to me:

RS>> Существует ли стандартная возможность сделать такой вот финт ушами?

AS> JAVAНOME=/path/to/jvm1 $JAVAНOME/bin/java -jar app1.jar
AS> JAVAНOME=/path/to/jvm2 $JAVAНOME/bin/java -jar app2.jar

Значит всё же через скрипт. Задать где-то в потрохах OS путь на конкретную Java для конкретной программы никак.

AS> Но тут зависит от приложения. Иногда приложение идёт вместе со своей
AS> jvm и запускается через sh-скрипт, в котором задаётся jvm.

Ну тут как раз всё просто, я про приложения которые не идут со своей jvm.

У меня установлен OpenJDK 1.8.0 для всех, а вот для конкретной программы надо минимум 12.0.1. Но остальным чтобы оставался 1.8.0

AS> Иногда достаточно задать нужное значение переменной JAVA_НOME. Если
AS> jvm >= 11 версии, тогда там есть штатный механизм jlink, который для
AS> твоего приложения сформирует образ (и включит туда только те модули,
AS> которые нужны для приложения), запускаемый через sh-скрипт.

Т.к. в Java я разбираюсь чуть хуже чем в Python, а в Python я разбираюсь гораздо хуже чем в Perl, а в Perl я разбираюсь намного хуже чем в балете, а в балете я не разбираюсь вообще, то спасибо за наводку, буду смотреть.

Bye!

--- GoldED+/LNX 1.1.5-b20170303
Ответить с цитированием
  #4  
Старый 14.10.2019, 09:13
Anatoliy Sablin
Guest
 
Сообщений: n/a
По умолчанию Хочется странных альтернатив

Anatoliy Sablin написал(а) к Rinat H. Sadretdinow в Oct 19 07:55:24 по местному времени:

Нello, Rinat Н. Sadretdinow.
On 11.10.2019 18:52 you wrote:

RS>>> Существует ли стандартная возможность сделать такой вот финт
RS>>> ушами?
AS>> JAVAНOME=/path/to/jvm1 $JAVAНOME/bin/java -jar app1.jar
AS>> JAVAНOME=/path/to/jvm2 $JAVAНOME/bin/java -jar app2.jar
RS> Значит всё же через скрипт. Задать где-то в потрохах OS путь на
RS> конкретную Java для конкретной программы никак.

Посмотри на desktop файлы, через них можно ещё задавать параметры запуска приложения. Ну а так, самый надёжный способ - через скрипт и переменные окружения.

AS>> Но тут зависит от приложения. Иногда приложение идёт вместе со
AS>> своей jvm и запускается через sh-скрипт, в котором задаётся jvm.
RS> Ну тут как раз всё просто, я про приложения которые не идут со
RS> своей jvm. У меня установлен OpenJDK 1.8.0 для всех, а вот для
RS> конкретной программы надо минимум 12.0.1. Но остальным чтобы
RS> оставался 1.8.0

Укажи путь до jvm явно. Как уже писал, самый универсальный и надёжный путь - через скрипт.


--
Best regards!
Posted using Нotdoged on Android
--- Нotdoged/2.13.5/Android
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:39. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot