Установка системных переменных Windows с Java
Есть ли способ добавить определенный каталог в системную переменную Windows% PATH%? Это не похоже на работу:
String[] cmd = { "cmd", "/c", "set", "PATH=\"%PATH%;c:\\test\"" };
Runtime.getRuntime().exec( cmd );
c: \ test \ не отображается в System.getenv ("PATH"); или в выводе
String[] cmd = { "cmd", "/c", "echo", "%PATH%" };
Runtime.getRuntime().exec( cmd );
Мне нужно изменить переменную% PATH% для текущего Java-процесса под Windows. Причина в том, что мне нужно загрузить некоторые собственные dll-файлы, которые ссылаются друг на друга. Поэтому я хотел бы добавить путь к приложению в среду Windows.
Следующим, что я попробовал, был маленький JNI-Wrapper для C-Function "putenv", который выглядит так:
JNIEXPORT void JNICALL Java_com_splitscreen_AppletTest_PutEnv_putEnv
(JNIEnv *env, jobject jobj, jstring val) {
jboolean iscopy;
const char *mvalue = (*env)->GetStringUTFChars(
env, val, &iscopy);
putenv(mvalue);
}
Вот как я это называю:
final String curPath = System.getenv( "PATH" );
final PutEnv pe = new PutEnv();
pe.putEnv( "PATH=" + curPath + ";c:\test" );
final String newPath = System.getenv( "PATH" );
System.out.println( newPath );
Но пути равны. Я не уверен, не обновлена ли карта Java-System-Environment или не работает putenv. Есть ли способ проверить это?