Установка системного свойства для конкретной JVM - PullRequest
0 голосов
/ 29 августа 2018

У меня есть Java-программа, которая выполняет командный файл в отдельной JVM. Теперь установка System.setProperty () не оказывает никакого влияния внутри командного файла.

System.setProperty(key,value);
Process shutdownProcess = Runtime.getRuntime().exec("ABC.bat");

этот процесс выполняется в отдельной JVM. В файле bat выполняется Java-программа, где я получаю доступ к -System.getProperty(key), но здесь я получаю нулевое значение, так как установить свойство System в этой конкретной JVM из Java, можно ли передать какой-либо параметр при выполнении файла bat или что можно сделать

1 Ответ

0 голосов
/ 29 августа 2018

С помощью Runtime.getRuntime вы получаете доступ к среде (хост, ОС, ...), в которой выполняется JVM. С exec вы запускаете команду в такой среде. Это означает выполнение этой команды в командной строке в Windows или в shell в * nix.

В командной строке / shell у вас нет такого понятия «Системное свойство JVM». Если вам нужно передать параметры из JVM в файл bat, одним из способов может быть использование стандартного синтаксиса командной строки и синтаксический анализ в файле bat. Что-то вроде следующего.

Runtime.getRuntime().exec("ABC.bat " + key + " " + value)

В вашем файле bat вы сможете получить ключ и значение следующим образом.

set key=%1
set value=%2
...