【Java】系统属性的备忘录
为了达到的结果或目标
- システムプロパティ関連のクラス・メソッドなどを整理
系统属性设置
如果要启动Java虚拟机,可以通过命令行参数 -D 来添加或修改系统属性。
java -Dfile.encoding=UTF-8 -jar xxxx.jar
根据虚拟机的版本和供应商,可以以不同的方式进行更改,或者有一些无法更改的系统属性。
用Java程序进行的操作
获取指定键的值
- java.lang.System#getProperty(String key)获取指定键的值(字符串)。
java.lang.System#getProperty(String key, String def)获取指定键的值(字符串)。如果属性值不存在,则返回默认值。
java.lang.Integer#getInteger(String nm)获取指定键的值(整数)。
java.lang.Integer#getInteger(String nm, int val)获取指定键的值(整数)。如果属性值不存在,则返回默认值。
java.lang.Integer#getInteger(String nm, Integer val)获取指定键的值(整数)。如果属性值不存在,则返回默认值。
java.lang.Booelan#getBoolean(String name)获取指定键的值(布尔值)。如果属性值不存在或不为”true”,则返回false。
在整数(Integer)和布尔值(Boolean)中,系统属性获取方法有点难以理解。
获取键和值的组合
- 获取java.lang.System的属性(Properties)。
获取java.lang.management.RuntimeMXBean的系统属性(System Properties),并将其重新封装为Map<String, String>的形式进行返回。
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
Map<String, String> systemProperties = runtimeMXBean.getSystemProperties();
修改值
- java.lang.System#setProperty(String key, String value)
设置指定键的值。
java.lang.System#clearProperty(String key)
删除指定键的值。
java.lang.System#setProperties(Properties props)
设置系统属性。
保护系统属性
- 创建系统属性许可。可用于由安全管理器等控制。
普通的系统属性
在Java的Javadoc中,有一个名为 java.lang.System#getProperties() 的方法,它列出了各种属性。此外,还有一些其他被使用的属性。
java.ext.dirs拡張ディレクトリのパス(省略)os.nameオペレーティング・システム名Windows 7os.archオペレーティング・システムのアーキテクチャx86os.versionオペレーティング・システムのバージョン6.1file.separatorファイル区切り文字
* Windowsだとバックスラッシュ
* Unix/Linuxだとスラッシュ\path.separatorパス区切り文字
* Windowsだとセミコロン
* Unix/Linuxだとコロン;line.separator行区切り文字
* Windowsだと\r\n
* Unix/Linuxだと\nのみ\r\nuser.nameユーザーのアカウント名(省略)user.homeユーザーのホーム・ディレクトリ(省略)user.dirユーザーの現在の作業ディレクトリ(省略)file.encodingファイルの文字コード 2
其他(部分摘要)
-
- ネットワークのプロパティ
-
- LogManagerクラス
-
- SimpleFormatterクラス
-
- MidiSystemクラス
-
- Currencyクラス
- SAXParserクラス
能够在不指定键值的情况下获取的方法和字段
有一些方法和字段,如java.lang.System#getProperty(String key),可以获取一些系统属性,而无需指定键名。