使用Java,如何将环境变量永久添加到现有的环境变量中。
这样当我重启Windows或Linux时,该环境变量仍然存在。
使用Java,如何将环境变量永久添加到现有的环境变量中。
这样当我重启Windows或Linux时,该环境变量仍然存在。
并非以任何跨平台的方式。在Linux中,这些通常是通过shell init脚本进行控制的。您需要编辑其中之一(具体取决于用户、系统和shell类型)。在Windows中,这是通过系统配置来控制的(我想应该有一些特定于Windows的API来修改这些内容)。
从程序中复制JDK路径,例如C:\Program Files\Java\jdk1.6.0\bin,并将其粘贴到用户变量中,在末尾加上 ;.; 并命名。 在系统变量中点击“新建”,输入名称并粘贴路径... 然后保存...
打开命令提示符 .. 检查当前路径 >echo %path% 设置路径 >set path="C:\Program Files\Java\jdk1.6.0\bin" 输入确定后,检查并运行Java程序
环境变量是特定于平台的。Windows将它们存储在注册表中。
*在注册表中,用户环境变量存储在HKEY_CURRENT_USER\Environment中,系统环境变量存储在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment中(来自http://demins.blogspot.co.il/2007/10/where-does-windows-xp-store-evrironment.html)*
有很多方法可以从Java访问Windows注册表。例如,您可以使用名为reg
的实用程序执行命令行,该实用程序具有丰富的命令行。您还可以使用其中一个互操作性API,如JaWin、Jinterop、Jintegra。您还可以参考我在这里解释的解决方案。
export MYVAR=myvalue
的命令行。我是说,在Java中使用 Runtime.exec()
或者 ProcessBuilder
执行这个命令行。问题是,这个变量不会真正地持久化。它只会对所有用户可见,直到计算机重启。要让它真正持久化,你需要修改用户登录脚本(例如,对于大多数Linux系统默认使用bash作为shell的用户来说,需要修改bashrc
文件)。export
不会影响除了在同一子进程中运行的后续进程之外的任何其他事情(它不会影响当前用户所做的任何其他事情,当然也不会影响任何其他用户)。实际上,该命令甚至无法直接运行,因为需要一个 shell 来执行它。 - jtahlborn/bin/sh export ...
或类似的方式运行命令。 我相信这个细节可以让OP自己发现。 - AlexR