2010-06-04 2 views
0

Успешны ли вы в подходе JNI в How to run Unix shell script from Java code? ?? Если да, можете ли вы предоставить мне (или опубликовать) исходные коды для c и java?изменить переменные среды из java

+0

Я не вижу подход JNI в связанном вопросе. Можете ли вы уточнить? –

+0

извините плохой ссылка в вопросе! http://stackoverflow.com/questions/1945713/set-windows-system-variables-with-java –

ответ

0

Если вы знаете системные вызовы для библиотек ОС для установки переменных среды, то я рекомендую JNA - он обеспечивает собственный доступ без хлопот записи библиотеки JNI.

+0

Я боюсь, что я не хочу .... Я хотел использовать http://www.opengroup.org/onlinepubs/009695399 /functions/putenv.html –

0

Вы прочитали ссылку на ProcessBuilder в ссылке, которую вы указали в своем вопросе?
Если не посмотреть на ProcessBuilder docs с примером.

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
Map<String, String> env = pb.environment(); 
env.put("VAR1", "myValue"); 
env.remove("OTHERVAR"); 
env.put("VAR2", env.get("VAR1") + "suffix"); 
pb.directory("myDir"); 
Process p = pb.start(); 

В приведенном выше примере вы можете легко изменить окружающую среду, как вы можете видеть.

После того, как у вас есть процесс, вы можете получить все необходимые вам потоки (getOutputStream(), getInputStream(), getErrorStream()).

Вы можете получить пример из нее: http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder.html

+0

, как объяснено здесь, он никогда не будет работать. Мне нужно изменить PATH текущего запущенного процесса: (( –

+0

здесь ... http://stackoverflow.com/questions/580085/is-it-possible-to-set-an-environment-variable-at-runtime- from-java –

+1

@Jlri Vanek и упомянутое сообщение говорят, что вы можете изменить среду дочернего процесса до его начала, но вы не можете изменить среду текущего процесса. –

Смежные вопросы