System.getProperties()
方法。这个方法返回一个包含所有系统属性的java.util.Properties
对象,可以通过该对象来获取和设置系统变量参数。Java系统变量参数获取设置System.getProperties()的方法
在Java中,我们可以使用System类的getProperties()方法来获取和设置系统属性,系统属性是与操作系统相关的一些参数,例如文件分隔符、用户主目录等,这些属性可以在程序运行过程中被读取和修改,从而实现对系统环境的动态配置。
获取系统属性
要获取系统属性,我们可以直接调用System类的getProperties()方法,这个方法返回一个Properties对象,该对象包含了所有的系统属性,我们可以使用该对象的getProperty()方法来获取指定属性的值。
示例代码:
import java.util.Properties; public class SystemPropertiesDemo { public static void main(String[] args) { // 获取系统属性 Properties properties = System.getProperties(); // 遍历并打印所有系统属性 for (String name : properties.stringPropertyNames()) { String value = properties.getProperty(name); System.out.println(name + ": " + value); } } }
设置系统属性
要设置系统属性,我们可以使用System类的setProperty()方法,这个方法接受两个参数:属性名和属性值,如果指定的属性已经存在,那么它的值将被修改;如果不存在,那么将创建一个新的属性并设置其值。
示例代码:
import java.util.Properties; public class SystemPropertiesDemo { public static void main(String[] args) { // 获取系统属性 Properties properties = System.getProperties(); // 设置系统属性 properties.setProperty("my.property", "my_value"); System.out.println("my.property: " + properties.getProperty("my.property")); } }
持久化系统属性
默认情况下,当程序结束时,系统属性将被清除,如果我们希望在程序运行期间修改的系统属性能够持久化,可以使用System类的另一个方法:setProperty(),这个方法接受三个参数:属性名、属性值和是否持久化,如果第三个参数为true,那么修改的属性将在JVM退出时保存到系统的配置文件中。
示例代码:
import java.util.Properties; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Stream; public class SystemPropertiesDemo { public static void main(String[] args) throws IOException { // 获取系统属性 Properties properties = System.getProperties(); // 设置系统属性并持久化 properties.setProperty("my.property", "my_value"); properties.setProperty("my.property", "my_new_value"); // 修改属性值 properties.setProperty("my.property", "my_final_value"); // 再次修改属性值 properties.store(new FileOutputStream("system_properties.txt"), "System Properties"); // 保存到文件 System.out.println("my.property: " + properties.getProperty("my.property")); // 输出当前属性值 } }
从文件中加载系统属性
除了在程序运行时动态设置系统属性,我们还可以从文件中加载已有的系统属性,这可以通过System类的另一个方法:load()实现,这个方法接受一个输入流作为参数,该输入流应该包含一个以"="分隔的属性名和属性值的列表,加载完成后,这些属性将被添加到当前的系统属性中。
示例代码:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.Properties; import java.util.stream.Collectors; import java.util.stream.Stream; public class SystemPropertiesDemo { public static void main(String[] args) throws IOException { // 从文件中加载系统属性 Properties properties = new Properties(); try (InputStream inputStream = System.class.getResourceAsStream("/system_properties_file.txt")) { // 从资源文件夹中加载文件,也可以使用其他路径加载文件,如:new FileInputStream("system_properties_file.txt") properties.load(inputStream); // 加载文件内容到Properties对象中,以"="分隔的属性名和属性值的列表将被解析为键值对并添加到Properties对象中 } catch (IOException e) { e.printStackTrace(); } finally { System.out.println("my.property: " + properties.getProperty("my.property")); // 输出当前属性值,如果文件中没有这个属性,将输出null或空字符串(取决于getProperty()方法的实现) } } }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/228520.html