JVM'deki System.getProperties () ve ortam değişkenleri System.getenv () arasındaki sistem özellikleri arasındaki fark nedir ?
JVM'deki System.getProperties () ve ortam değişkenleri System.getenv () arasındaki sistem özellikleri arasındaki fark nedir ?
Yanıtlar:
Bence ikisi arasındaki fark erişime kayıyor. Sistem ortamı değişkenlerine herhangi bir işlem tarafından erişilebilir ve Java sistem özelliklerine yalnızca eklendikleri işlem tarafından erişilebilir.
Ayrıca Bohemian'ın belirttiği gibi, env değişkenleri işletim sisteminde ayarlanır (ancak Java ile 'ayarlanabilir') ve sistem özellikleri komut satırı seçenekleri olarak veya üzerinden ayarlanır setProperty()
.
Sistem özellikleri-Dpropertyname=value
sözdizimikullanılarak Java komut satırında ayarlanır. Ayrıca çalışma zamanındaSystem.setProperty(String key, String value)
veya çeşitli
System.getProperties().load()
yöntemlerkullanılarak eklenebilirler.
Belirli bir sistem özelliği almakiçinSystem.getProperty(String key)
veyatuşunu kullanabilirsinizSystem.getProperty(String key, String def)
.
Çevre değişkenleri Linux örneğin OS ayarlanırexport HOME=/Users/myusername
veya WindowsSET WINDIR=C:\Windows
özelliklerini aksine olabilir, vs, ve değil çalışma zamanında ayarlanabilir.
Belirli bir ortam değişkeni elde etmek içinkullanabilirsinizSystem.getenv(String name)
.
System.grtProperties()
tüm özellikleri listeler ve komut satırından ayarlananlar orada olacaktır, ancak bunları sorarsanız, sistem tarafından eklenen diğer özelliklerden ayırt etmenin bir yolu yoktur.
JAVA_TOOL_OPTIONS
.
System.getenv(String name)
çağrı sırasında sistemden gelen değeri dinamik olarak okumaz.