【发布时间】:2015-02-23 13:42:11
【问题描述】:
我想在 JAVA 中设置环境变量。为此,我在互联网上搜索了很多并得到了以下代码。
void set_up_environment_var() throws IOException
{
ProcessBuilder pb = new ProcessBuilder("CMD.exe", "/C", "SET"); // SET prints out the environment variables
pb.redirectErrorStream(true);
Map<String,String> env = pb.environment();
String str1 = ";C:\\naved\\bin";
String path = env.get("Path") ;//+ ";C:\\naved\\bin";
System.out.println("ok , I am coming . "+path.toLowerCase().contains(str1.toLowerCase()));
env.put("Path", path.concat(str1));
Process process = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
// System.out.println(line);
}
}
但执行后,“PATH”变量中没有设置环境变量。为什么?
【问题讨论】:
-
你从中得到了什么?
-
操作系统中的环境不是全局空间,它是执行进程的本地空间。当一个进程启动另一个进程时,新进程的环境从父进程继承。你永远不能从子进程中改变父进程的环境。
-
要做到这一点,您将通过 JNI/JNA 在本机级别弄脏自己的双手
-
您的要求并不完全清楚。例如,“环境变量未在“PATH”变量中设置。
PATH变量是一个环境变量,所以你的问题听起来有点困惑。你到底想达到什么目标?
标签: java environment-variables