Использование экспорта в Java - PullRequest
2 голосов
/ 10 сентября 2011

Я использую Java для вызова другой программы, которая использует экспортированную переменную среды для функции:

SOME_VARIABLE=/home/..
export SOME_VARIABLE

Как я могу использовать java для установки этой переменной, чтобы я мог использовать эту программу более чем на одной машине? По сути, я хочу иметь возможность эмулировать вышеупомянутые команды через Java.

Ответы [ 2 ]

4 голосов
/ 10 сентября 2011

Вы можете установить переменные окружения при использовании java.lang.Runtime.getRuntime().exec(...) или java.lang.Processbuilder для вызова другой программы.

С Processbuilder вы можете сделать:

ProcessBuilder processBuilder = new ProcessBuilder("your command");
processBuilder.environment().put("SOME_VARIABLE", "/home/..");
processBuilder.start();

С помощью Runtime это:

Map<String, String> environment = new HashMap<String, String>(System.getenv());
environment.put("SOME_VARIABLE", "/home/..");
String[] envp = new String[environment.size()];
int count = 0;
for (Map.Entry<String, String> entry : environment.entrySet()) {
    envp[count++] = entry.getKey() + "=" + entry.getValue();
}

Runtime.getRuntime().exec("your command", envp);
1 голос
/ 10 сентября 2011

Возможно, вы можете использовать System#setProperty(String property, String value), хотя я не уверен, изменит ли это что-либо вне текущей JVM, что означает, что эта переменная среды будет доступна только для процессов, запускаемых текущей JVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...