有沒有辦法將特定的目錄添加到Windows系統變量%PATH%? 這似乎並不工作:用Java設置Windows系統變量
String[] cmd = { "cmd", "/c", "set", "PATH=\"%PATH%;c:\\test\"" };
Runtime.getRuntime().exec(cmd);
C:\測試\沒有出現在System.getenv( 「PATH」);或在輸出
String[] cmd = { "cmd", "/c", "echo", "%PATH%" };
Runtime.getRuntime().exec(cmd);
我需要的是修改當前在Windows下的Java進程%PATH%變量。原因是,我需要加載一些互相交叉引用的原生dll文件。所以我想將應用程序路徑添加到Windows環境中。
我想接下來的事情是一個小JNI的包裝爲C-功能 「運行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是否無效。有沒有辦法檢查這個?
是的,你可以使用一個簡單的'System.getEnv( 「PATH」)'直接從Java支票路徑。 – 2009-12-22 14:24:58