从java永久设置环境变量

从java永久设置环境变量,java,Java,使用Java, 如何将环境变量永久添加到现有环境变量中 因此,当我为windows或Linux执行重新启动操作时,这个环境变量仍然存在。不是以任何跨平台的方式。在Linux中,这些通常通过shell init脚本进行控制。您必须编辑其中一个(取决于用户、系统和shell类型)。在Windows中,这是通过系统配置控制的(我可以想象有一些特定于Windows的API可以修改这些API)。环境变量是特定于平台的。Windows将它们存储在注册表中 *在注册表中,用户环境变量存储在 HKEY\ U当前

使用Java, 如何将环境变量永久添加到现有环境变量中


因此,当我为windows或Linux执行重新启动操作时,这个环境变量仍然存在。

不是以任何跨平台的方式。在Linux中,这些通常通过shell init脚本进行控制。您必须编辑其中一个(取决于用户、系统和shell类型)。在Windows中,这是通过系统配置控制的(我可以想象有一些特定于Windows的API可以修改这些API)。

环境变量是特定于平台的。Windows将它们存储在注册表中

*在注册表中,用户环境变量存储在 HKEY\ U当前\用户\环境 系统环境变量存储在 HKEY\U LOCAL\U MACHINE\System\CurrentControlSet\Control\Session Manager\Environment (来自)*

有很多方法可以从java访问windows注册表。例如,您可以使用名为
reg
的实用程序执行命令行,该实用程序具有reach命令行。您还可以使用一种互操作性API,如JaWin、Jinterop、Jintegra。您也可以参考我解释的解决方案


在linux上,您可以使用类似于导出MYVAR=myvalue的命令行。我的意思是使用
Runtime.exec()
ProcessBuilder
从java执行此命令行。问题是这个变量不会变得真正持久。在计算机重新启动之前,它将对所有用户可见。要使其真正持久化,您必须修改用户登录脚本(例如,如果用户的默认shell是bash,则大多数linux系统的
bashrc
文件)

您可能想看看

在Windows中,你可以这样做,所以它应该做到这一点


我意识到这只适用于Windows。

将jdk的路径复制到C:\Program Files\Java\jdk1.6.0\bin from Program and pass in user variables and put;。;在结尾,说出名字。 在“系统变量”中,单击“新建”,输入名称并通过路径…,然后保存…

转到命令提示符 .. 检查当前路径>回显%path%
要设置path>set path=“C:\Program Files\Java\jdk1.6.0\bin”立即输入ok检查并运行Java程序,您使用的是哪个操作系统?或者,您正在寻找一种与操作系统无关的解决方案?您是在尝试使用Java编写一些系统管理工具,还是在尝试修改自己应用程序的配置?因为如果是后者,我会说将您的配置移动到其他地方。按照@DilumRanatunga所说的,Preferences API是一种以系统无关的方式保存每个用户配置的好方法。。。。但是preferences API并不能保证任何事情。非常不幸。我正在使用Windows,但我需要这两个平台的功能。对于linux解决方案,从子进程运行
export
,除了在同一子进程中运行的后续进程外,不会影响任何其他进程(它不会影响当前用户所做的任何其他事情,当然也不会影响任何其他用户)。事实上,该命令甚至不能按原样运行,因为您需要一个shell来执行它。@jtahlborn,很抱歉,我忘了提到以
/bin/sh export…
或类似的方式运行该命令。我相信OP自己可以发现这个细节。这只涉及了我所说的一小部分,但没有一个要点。