我如何才能得到系统变量的值,这是目前在

MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables

在Java中?

Edit

我已经使用了System.getenv()方法。

如果我给,它就是印刷价值

System.out.println(System.getenv("JAVA_HOME"));

如果我尝试对我创建的系统变量执行相同的操作,它会显示空值

System.out.println(System.getenv("DBE"));

当前回答

为了澄清,系统变量与环境变量相同。用户环境变量是为每个用户设置的,并且随着不同的用户登录而不同。无论用户登录什么,系统范围内的环境变量都是相同的。

要在Java中访问系统变量或用户变量的当前值,请参见以下内容:

String javaHome = System.getenv("JAVA_HOME");

有关环境变量的更多信息,请参阅此维基百科页面。

此外,在调用Java之前,通过执行以下操作,确保您正在尝试读取的环境变量已正确设置:

echo %MYENVVAR%

您应该看到环境变量的值。如果不是,您可能需要重新打开shell (DOS)或注销并重新登录。

其他回答

设置环境变量后,您是否尝试过重新启动?

Windows似乎把它的环境变量保存在某种缓存中,重新启动是一种刷新它的方法。我不确定,但可能有不同的方法,但如果你不打算经常改变变量值,这可能足够好了。

实际上变量可以设置也可以不设置,所以,在Java 8或更高版本中,它的可空值应该被包装成一个可选对象,这允许真正好的功能。在下面的例子中,我们将尝试获取变量ENV_VAR1,如果它不存在,我们可以抛出一些自定义异常来警告它:

String ENV_VAR1 = Optional.ofNullable(System.getenv("ENV_VAR1")).orElseThrow(
  () -> new CustomException("ENV_VAR1 is not set in the environment"));

这段代码为您提供了环境变量名称和相应值的映射。

public static void main(String[] args) {
            Map<String, String> map = System.getenv();
            System.out.println(map);
        }

为了澄清,系统变量与环境变量相同。用户环境变量是为每个用户设置的,并且随着不同的用户登录而不同。无论用户登录什么,系统范围内的环境变量都是相同的。

要在Java中访问系统变量或用户变量的当前值,请参见以下内容:

String javaHome = System.getenv("JAVA_HOME");

有关环境变量的更多信息,请参阅此维基百科页面。

此外,在调用Java之前,通过执行以下操作,确保您正在尝试读取的环境变量已正确设置:

echo %MYENVVAR%

您应该看到环境变量的值。如果不是,您可能需要重新打开shell (DOS)或注销并重新登录。

你使用的是linux系统吗?如果是这样,请确保导出了变量。

myVar=testvalue; export myVar

我得到null,除非我使用export全局定义值。