Приложение JNLP возвращает NULL для всех System.getenv () - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть приложение JNLP Java WebStart, в котором я хочу прочитать переменные среды, но все они имеют значение NULL.

В моем приложении JNLP я обращаюсь к переменным и печатаю их следующим образом:

Map<String, String> envArgs = System.getenv();
for (String key : envArgs.keySet()) {
    System.out.println(key + "=" + arguments.get(key));
}

И печатает только строки, подобные этой:

ProgramData = null
ProgramW6432 = null
HOMEPATH = null
PROCESSOR_IDENTIFIER = null
ProgramFiles = null
PUBLIC = null
windir = null
MOZ_CRASHREPORTER_PING_DIRECTORY = null

Приложение JNLP запускается из другого приложения Java с использованием ProcessBuilder cmd = "C:\JDK\jre\bin\javaws -wait URL2JNLP":

ProcessBuilder pb = new ProcessBuilder(cmd[0], cmd[1], cmd[2]);
pb.environment().put("apple", "isFruite");

try {
    return pb.start();
} catch (IOException e) {
    LOG.error("Error starting JNLP application", e);
    throw new RuntimeException(e);
}

Есть ли способ исправить этот доступ / передачу переменных среды?

...