JVM中的系统属性system . getproperties()和环境变量system .getenv()之间有什么区别?
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()设置的。
推荐文章
- 到底是什么导致了堆栈溢出错误?
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何获取变量的类型?
- Java:路径vs文件
- ExecutorService,如何等待所有任务完成
- Maven依赖Servlet 3.0 API?
- 从Bash脚本更改当前目录
- 如何在IntelliJ IDEA中添加目录到应用程序运行概要文件中的类路径?
- getter和setter是糟糕的设计吗?相互矛盾的建议
- 在c++中,是通过值传递更好,还是通过引用到const传递更好?
- Android room persistent: AppDatabase_Impl不存在
- Java的String[]在Kotlin中等价于什么?
- Intellij IDEA上的System.out.println()快捷方式
- 使用Spring RestTemplate获取JSON对象列表
- Spring JPA选择特定的列