У меня есть сценарии, в которых у меня есть Java-агент, который работает на нескольких платформах (в частности, Windows, Solaris и AIX). Я хотел бы выделить различия в структуре файловой системы, используя переменные среды в командной строке, которую я выполняю.
Насколько я могу судить, нет способа получить метод Runtime.exec()
для разрешения / оценки любых переменных среды, на которые есть ссылка в команде String (или массиве Strings).
Я знаю, что если нажать кнопку push, я могу написать некоторый код для предварительной обработки команды String и разрешения переменных среды вручную (используя getEnv()
и т. Д.). Однако мне интересно, есть ли более разумный способ сделать это, так как я уверен, что я не единственный человек, желающий сделать это, и я уверен, что есть подводные камни в «подборе» моей собственной реализации.
Ваши рекомендации и предложения приветствуются.
редактирование:
Я хотел бы сослаться на переменные среды в командной строке, используя некоторые согласованные обозначения, такие как $ VAR и / или% VAR%. Не суетиться который.
редактирование:
Чтобы было ясно, я хотел бы иметь возможность выполнять такие команды, как:
perl $SCRIPT_ROOT/somePerlScript.pl args
на хостах Windows и Unix с использованием Runtime.exec()
. Я задаю команду в файле конфигурации, которая описывает список заданий для запуска, и она должна быть в состоянии работать на кросс-платформенной основе, поэтому я подумал, что переменная окружения будет полезна для учета различий файловой системы (/home/username/scripts
против C:\foo\scripts
). Надеюсь, это поможет прояснить это.
Спасибо.
Том