Java的System.setProperty()和System.getProperty()

发布时间 2023-09-07 13:06:04作者: tomato_4

写在前面:

这里的System,系统指的是 JRE (runtime)system,不是指 OS。

参数设置成为系统的全局变量,可以在项目的任何一个地方,通过System.getProperty("变量");来获得。

System.setProperty 相当于一个静态变量 ,存在内存里面!

System.setProperty()

/*
 * 设置指定键对值的系统属性
 * setProperty (String prop, String value);
 *
 * 参数:
 * prop - 系统属性的名称。
 * value - 系统属性的值。 
 *
 * 返回:
 * 系统属性以前的值,如果没有以前的值,则返回 null。
 *
 * 抛出: 
 * SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许设置指定属性。
 * NullPointerException - 如果 key 或 value 为 null。
 * IllegalArgumentException - 如果 key 为空。
 *
*/

public class SystemTest {
static {
setValue();
}

public static void setValue() {
System.setProperty("sysid", "tyzf");
System.setProperty("appid", "ibps");
}

public static void main(String[] args) {
System.out.println(System.getProperty("sysid"));
System.out.println(System.getProperty("appid"));
System.out.println(System.getProperty("resid","defult"));
System.out.println(System.setProperty("appid", "hvps"));//返回系统属性以前的值,如果没有以前的值,则返回 null
System.out.println(System.getProperty("appid"));
     //System.getProperties().list(System.out);
    }
}
输出:
1 tyzf
2 ibps
3 defult
4 ibps
5 hvps

 

System.getProperty()

这个函数可以获取到Java JVM以及操作系统的一些参数,可以供程序判断等

可以传递的参数有:

 1 System.getProperty("java.vm.version");//java虚拟机版本  
 2 System.getProperty("java.vendor.url"); //java官方网站  
 3 System.getProperty("java.vm.nam"); //java虚拟机名称  
 4 System.getProperty("user.country"); //国家或地区  
 5 System.getProperty("user.dir"); //工程的路径  
 6 System.getProperty("java.runtime.version");//java运行环境版本  
 7 System.getProperty("os.arch"); //操作系统位数(32或64)  
 8 System.getProperty("os.name"); //操作系统名称  
 9 System.getProperty("sun.jnu.encoding"); //编码格式  
10 System.getProperty("os.version"); //操纵系统版本  
11 System.getProperty("java.version"); //java版本版本</span>  

除此之外,还可以传递许多参数,这里就不一一列举了.

可以直接使用下面代码获取到所有的键和值。

System.getProperties().list(System.out);  
 1 -- listing properties --
 2 java.runtime.name=Java(TM) SE Runtime Environment
 3 sun.boot.library.path=C:\Program Files\Java\jdk1.8.0_152\jr...
 4 java.vm.version=25.152-b16
 5 java.vm.vendor=Oracle Corporation
 6 java.vendor.url=http://java.oracle.com/
 7 path.separator=;
 8 appid=hvps
 9 java.vm.name=Java HotSpot(TM) 64-Bit Server VM
10 file.encoding.pkg=sun.io
11 user.script=
12 user.country=CN
13 sun.java.launcher=SUN_STANDARD
14 sun.os.patch.level=Service Pack 1
15 java.vm.specification.name=Java Virtual Machine Specification
16 user.dir=E:\workspace\Test
17 java.runtime.version=1.8.0_152-b16
18 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
19 java.endorsed.dirs=C:\Program Files\Java\jdk1.8.0_152\jr...
20 os.arch=amd64
21 java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\
22 line.separator=
23 
24 java.vm.specification.vendor=Oracle Corporation
25 user.variant=
26 os.name=Windows 7
27 sun.jnu.encoding=GBK
28 java.library.path=C:\Program Files\Java\jdk1.8.0_152\bi...
29 java.specification.name=Java Platform API Specification
30 java.class.version=52.0
31 sun.management.compiler=HotSpot 64-Bit Tiered Compilers
32 os.version=6.1
33 user.home=C:\Users\Administrator
34 sysid=tyzf
35 user.timezone=
36 java.awt.printerjob=sun.awt.windows.WPrinterJob
37 java.specification.version=1.8
38 file.encoding=UTF-8
39 user.name=Administrator
40 java.class.path=E:\workspace\Test\target\cl...
41 java.vm.specification.version=1.8
42 sun.arch.data.model=64
43 java.home=C:\Program Files\Java\jdk1.8.0_152\jre
44 sun.java.command=SystemTest
45 java.specification.vendor=Oracle Corporation
46 user.language=zh
47 awt.toolkit=sun.awt.windows.WToolkit
48 java.vm.info=mixed mode
49 java.version=1.8.0_152
50 java.ext.dirs=C:\Program Files\Java\jdk1.8.0_152\jr...
51 sun.boot.class.path=C:\Program Files\Java\jdk1.8.0_152\jr...
52 java.vendor=Oracle Corporation
53 file.separator=\
54 java.vendor.url.bug=http://bugreport.sun.com/bugreport/
55 sun.cpu.endian=little
56 sun.io.unicode.encoding=UnicodeLittle
57 sun.desktop=windows
58 sun.cpu.isalist=amd64