Установите / создайте переменную среды с помощью Java-программы, которая сохраняется после выполнения prgram в Linux

#java #linux #unix

#java #linux #unix

Вопрос:

Мне нужно создать Java-решение, которое может создавать / устанавливать определенную переменную среды с помощью Java-кода. Эти новые переменные среды будут использоваться другой Java-программой на том же компьютере. Я нашел код, который может создавать переменные среды в том же процессе, используя processbuilder.

Комментарии:

1. Подсказка: ставить так много тегов на ваш вопрос не очень хорошо. У вас есть вопрос java linux; таким образом, нет необходимости в теге Windows !

Ответ №1:

Переменные среды работают не так.

Переменные среды — это, по сути, дополнительный набор параметров, который передается в программу. Если эта программа по очереди запускает новую программу, то она может пересылать свои переменные среды или нет, и она может устанавливать (или отменять) любые другие переменные среды или нет в той программе, которую она запускает; но переменные среды не являются глобальным свойством машины, и нет никакогоспособ, которым программа отправляет переменную среды другой программе только потому, что они находятся на одном компьютере.

Вместо этого вам нужно, чтобы ваша первая программа хранила необходимые сопоставления ключ-значение в файле где-нибудь на хосте, а ваша вторая программа считывала эти сопоставления.

Тем не менее, вам может оказаться полезным использовать переменные окружения как часть вашего решения; например, ваша первая программа может записать сопоставления ключ-значение в формате, который Bash будет интерпретировать как настройку переменных окружения:

 export foo=bar
export baz=bip
  

а затем запустите свою вторую программу, используя скрипт-оболочку Bash, который сначала извлекает сопоставления ключ-значение ( source file_that_the_first_program_wrote_to.txt ), а затем выполняет его.

Ответ №2:

В Java нет механизма сохранения для «переменных среды».

Это означает, что вам нужно изучить другие варианты средств сохранения информации.

Поскольку вы говорите о простых вещах, которые вписывались бы в переменные среды, естественной вещью для использования были бы свойства java.

Значение: у вас есть один (или несколько) файлов свойств в определенных местах; и некоторые из ваших Java-программ просто читают эти файлы; в то время как другие также могут манипулировать содержимым этих файлов.