Java应用运行的平台环境由操作系统、JVM、类库、应用启动时提供的配置数据共同定义。
Properties
Properties是使用key-value键值对管理的配置数据。Proterties继承Hashtable实现,但不要使用Hashtable的方法访问修改Properties对象的值。
Properties创建
Properties properties = new Properties();
ps:新建Properties对象为空。
Properties创建(利用已存在properties初始化)
Properties properties = new Properties(System.getProperties());
note:利用系统属性初始化新建Properties。
Properties载入值(利用InputStream)
File file = new File("myProperties.txt");
FileInputStream propFile = new FileInputStream(file);
properties.load(propFile);
note:将myProperties.txt文件中的键值对添加到properties对象中。
Properties将值输出(利用OutputStream)
properties.list(System.out);
note:将properties的值输出到控制台。
获取Properties的键集合
Set<String> keys = properties.stringPropertyNames();
移除Properties中的元素
properties.remove("aaa");
note:将键为"aaa"的元素移除。
设置Properties中的元素
properties.setProperty("aaa", "111111111111111111");
ps:如果properties方法中没有参数中所指定的key,则会添加键值对,否则会修改键值对。
命令行参数
运行java时,可以输入多个字符串,用作命令行参数。输入的命令行参数可以通过main函数的参数进行访问。
java -jar xxx.jar aaa bb ccc
note:程序xxx.jar运行时,输入参数aaa、bb、ccc
环境变量
Java获取环境变量
Map<String, String> env = System.getenv();
由于UNIX系统与Windows系统的环境变量的大小写字母应用规则不同以及命名不同,所以最好用Properties替换环境变量的使用,用以提高程序移植性。
Java System Properties
获取系统全部属性
System.getProperties();
note:此方法返回系统Properties对象。
ps:可以使用此方法的返回值初始化新建Properties对象。
获取系统属性(指定键无对应值时,默认返回null)
String osArch = System.getProperty("os.arch");
note:获取操作系统架构
获取系统属性(指定键无对应值时,返回给定值)
String osArch = System.getProperty("os", "empty");
设置系统属性值
System.setProperties(properties);
note:将传入的Properties对象properties设置为系统Properties对象。
ps:会暂时改变当前运行环境里的属性集合,慎用。
详细教程:https://docs.oracle.com/javase/tutorial/essential/environment/index.html