有没有办法将特定的目录添加到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