JVM에서 시스템 특성 System.getProperties () 와 환경 변수 System.getenv () 의 차이점은 무엇입니까 ?
JVM에서 시스템 특성 System.getProperties () 와 환경 변수 System.getenv () 의 차이점은 무엇입니까 ?
답변:
나는 두 종점의 차이점이 접근 할 것이라고 생각합니다. 시스템 환경 변수는 모든 프로세스에서 액세스 할 수 있으며 Java 시스템 특성은 추가 된 프로세스에서만 액세스 할 수 있습니다.
또한 Bohemian이 언급했듯이 env 변수는 OS에서 설정되지만 (Java를 통해 '설정 가능') 시스템 특성은 명령 행 옵션으로 전달되거나를 통해 설정됩니다 setProperty()
.
시스템 특성 은-Dpropertyname=value
구문을사용하여 Java 명령 행에서 설정됩니다. 또한 런타임시System.setProperty(String key, String value)
다양한System.getProperties().load()
방법을사용하거나 다양한
방법으로 추가 할 수 있습니다.
특정 시스템 속성 을 얻으려면System.getProperty(String key)
또는을 사용할 수 있습니다System.getProperty(String key, String def)
.
환경 변수 는 OS, 예를 들어 Linuxexport HOME=/Users/myusername
또는 WindowsSET WINDIR=C:\Windows
등에서설정되며속성과 달리런타임에 설정 되지 않을 수 있습니다.
특정 환경 변수 를 얻으려면을 사용할 수 있습니다System.getenv(String name)
.
System.grtProperties()
모든 속성을 나열하고 명령 줄에서 설정 한 속성이 있지만 시스템에서 추가 한 다른 속성과 구별 할 수있는 방법은 없습니다.
JAVA_TOOL_OPTIONS
.
System.getenv(String name)
, 호출시 시스템에서 값을 동적으로 읽지 않습니다.