Вы можете использовать метод ProcessBuilder.environment()
, чтобы получить Map
переменных среды.
ProcessBuilder
документы утверждают, что:
Возвращает представление карты строк среды этого построителя процессов.Всякий раз, когда создается создатель процесса, среда инициализируется как копия текущей среды процесса (см. System.getenv ()).Подпроцессы, впоследствии запущенные методом start () этого объекта, будут использовать эту карту в качестве своего окружения.
Используя возвращенную карту, вы можете установить свои собственные переменные custon env, которые будут использоваться запущенным вами процессом.
В приведенном ниже примере фрагмента демонстрируется установка переменных env с использованием ProcessBuilder
API:
public static void main(String[] args) throws Exception {
ProcessBuilder pb =
new ProcessBuilder("cmd.exe", "/C", "echo", "%JAVA_HOME%");
Map<String, String> env = pb.environment();
env.put("JAVA_HOME", "c/User/Programs/JDK...");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while((line=br.readLine()) != null){
System.out.println(line);
}
try {
int exitValue = p.waitFor();
System.out.println("\n\nExit Value is " + exitValue);
} catch (InterruptedException e) {
e.printStackTrace();
}
}