JVM中的系统属性system . getproperties()和环境变量system .getenv()之间有什么区别?
当前回答
我认为两者之间的区别归结为获取途径。环境变量可以被任何进程访问,而Java系统属性只能被添加它们的进程访问。
同样,正如波西米亚所说,env变量是在操作系统中设置的(然而,它们“可以”通过Java设置),系统属性是作为命令行选项传递或通过setProperty()设置的。
其他回答
System properties are set on the Java command line using the -Dpropertyname=value syntax. They can also be added at runtime using System.setProperty(String key, String value) or via the various System.getProperties().load() methods. To get a specific system property you can use System.getProperty(String key) or System.getProperty(String key, String def). Environment variables are set in the OS, e.g. in Linux export HOME=/Users/myusername or on Windows SET WINDIR=C:\Windows etc, and, unlike properties, may not be set at runtime. To get a specific environment variable you can use System.getenv(String name).
我认为两者之间的区别归结为获取途径。环境变量可以被任何进程访问,而Java系统属性只能被添加它们的进程访问。
同样,正如波西米亚所说,env变量是在操作系统中设置的(然而,它们“可以”通过Java设置),系统属性是作为命令行选项传递或通过setProperty()设置的。
推荐文章
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- Mockito.any()传递带有泛型的接口
- 在IntelliJ 10.5中运行测试时,出现“NoSuchMethodError: org.hamcrest. matcher . descripbemismatch”
- 使用String.split()和多个分隔符
- Java数组有最大大小吗?
- 在Android中将字符串转换为Uri
- 从JSON生成Java类?
- 为什么java.util.Set没有get(int index)?
- Swing和AWT的区别是什么?
- 为什么Java流是一次性的?
- Swift类错误:属性未在super处初始化。init调用
- 四舍五入BigDecimal *总是*有两位小数点后
- 设计模式:工厂vs工厂方法vs抽象工厂
- Java:检查enum是否包含给定的字符串?