raj*_*aja 153 java environment-variables
如何获取存在的系统变量值
System.getenv()
在Java?
编辑
我用过的null方法.
如果我给,它是印刷价值
MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables
Run Code Online (Sandbox Code Playgroud)
System.getenv()如果我对我创建的系统变量尝试相同的话,它就会显示出来
System.out.println(System.getenv("JAVA_HOME"));
Run Code Online (Sandbox Code Playgroud)
Eli*_*jah 51
为了澄清,系统变量与环境变量相同.用户环境变量是按用户设置的,并且每当有不同的用户登录时都是不同的.无论用户登录什么,系统范围的环境变量都是相同的.
要访问系统范围变量的当前值或Java中的用户变量,请参阅以下内容:
String javaHome = System.getenv("JAVA_HOME");
Run Code Online (Sandbox Code Playgroud)
有关环境变量的更多信息,请参阅此维基百科页面.
通过执行以下操作,还要确保在调用Java之前正确设置了您尝试读取的环境变量:
echo %MYENVVAR%
Run Code Online (Sandbox Code Playgroud)
您应该看到环境变量的值.如果没有,您可能需要重新打开shell(DOS)或注销并重新登录.
Dil*_*nga 27
获取系统/环境属性时,有一些感兴趣的细节.
首先,System.getenv(String)介绍了回溯时间,然后弃用.弃用(愚蠢地,IHMO)一直持续到JSE 1.4.
这些是使用Windows中的"环境变量"面板设置的.在当前VM关闭之前,可能无法获取对变量的更改,并且退出CMD.exe实例.
与环境属性相比,Java还具有可通过的Java系统属性System.getProperties().使用一系列命令行参数启动VM时,可以初始化这些变量.例如,对于属性的值和在下面的命令设置的:-Dname=valuemaxInMemorypagingDirectory
C:\> java.exe -DmaxInMemory=100M -DpagingDirectory=c:\temp -jar myApp.jar
除非安全策略限制,否则可以在运行时修改这些属性.
Eli*_*iuX 17
实际上变量可以设置或不设置,因此,在Java 8或更高版本中,它的可空值应该被包装到一个Optional对象中,这允许非常好的特性.在下面的示例中,我们将尝试获取变量ENV_VAR1,如果它不存在,我们可能会抛出一些自定义异常来提醒它:
String ENV_VAR1 = Optional.ofNullable(System.getenv("ENV_VAR1")).orElseThrow(
() -> new CustomException("ENV_VAR1 is not set in the environment"));
Run Code Online (Sandbox Code Playgroud)
小智 5
设置环境变量后是否尝试过重新启动?
Windows 似乎将其环境变量保存在某种缓存中,重新启动是刷新它的一种方法。我不确定,但可能有不同的方法,但如果您不打算太频繁地更改变量值,这可能就足够了。
| 归档时间: |
|
| 查看次数: |
184971 次 |
| 最近记录: |