System property 系统属性变量

今天开发过程中,发现System.getProperty("line.separator")可以支持换行跨平台,例如各平台对应的换行符如下:\r: Mac ;
\n: Unix/Linux ;\r\n: Windows或Http,为了自己的程序更好的支持跨平台,今天对System property大致研究一下,现做笔记如下,方面为了查阅。

System property 概念

 

在JAVA平台自身会使用一个Properties的对象来保存它自自己的配置."System"类保持了一个Properties对象,这个对象描述了当前工作环境的配置。这些配置包括当前用户,当前JVM版本及文件目录名的分隔离符等等.
与系统环境变量不同,可以将System property理解为JVM的环境变量。

 

初始化变量列表

 

System properties. The following properties are guaranteed to be defined:

indexkeyvalue
0java.runtime.nameJava(TM) SE Runtime Environment
01sun.boot.library.pathC:\Program Files\Java\jdk1.8.0_181\jre\bin
02java.vm.version25.181-b13
03java.vm.vendorOracle Corporation
04java.vendor.urlhttp://java.oracle.com/
05path.separator;
06java.vm.nameJava HotSpot(TM) 64-Bit Server VM
07file.encoding.pkgsun.io
08user.countryCN
09user.script
10sun.java.launcherSUN_STANDARD
11sun.os.patch.level
12test123
13java.vm.specification.nameJava Virtual Machine Specification
14user.dirD:\sparrow\sparrow-shell
15java.runtime.version1.8.0_181-b13
16java.awt.graphicsenvsun.awt.Win32GraphicsEnvironment
17java.endorsed.dirsC:\Program Files\Java\jdk1.8.0_181\jre\lib\endorsed
18os.archamd64
19java.io.tmpdirC:\Users\LIZHI~1.ZHA\AppData\Local\Temp\
20line.separator\r\n
21java.vm.specification.vendorOracle Corporation
22user.variant
23os.nameWindows 10
24sun.jnu.encodingGBK
25java.library.pathC:\Program Files\Java\jdk1.8.0_181\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;c:\Program Files\Git\cmd;D:\Go\bin;C:\Program Files\nodejs;C:\Users\lizhi.zhang01\AppData\Local\Microsoft\WindowsApps;D:\apache-maven-3.5.4-bin\apache-maven-3.5.4\bin;C:\Program Files\Git\bin;C:\Program Files\Java\jdk1.8.0_181\bin;D:\go-work-space\bin;D:\Go\bin;D:\apache-ant-1.9.13\bin;D:\Gradle\gradle-4.10\bin;C:\Users\lizhi.zhang01\AppData\Roaming\npm;;.
26java.specification.nameJava Platform API Specification
27java.class.version52.0
28sun.management.compilerHotSpot 64-Bit Tiered Compilers
29os.version10.0
30user.homeC:\Users\lizhi.zhang01
31user.timezone
32java.awt.printerjobsun.awt.windows.WPrinterJob
33file.encodingUTF-8
34java.specification.version1.8
35java.class.pathC:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre
36user.namelizhi.zhang01
37java.vm.specification.version1.8
38sun.java.commandcom.sparrow.jdk.os.SystemProperty 1 2 3
39java.homeC:\Program Files\Java\jdk1.8.0_181\jre
40sun.arch.data.model64
41user.languagezh
42java.specification.vendorOracle Corporation
43awt.toolkitsun.awt.windows.WToolkit
44java.vm.infomixed mode
45java.version1.8.0_181
46java.ext.dirsC:\Program Files\Java\jdk1.8.0_181\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
47sun.boot.class.pathC:\Program Files\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\classes;C:\Users\lizhi.zhang01.IntelliJIdea2018.1\system\captureAgent\debugger-agent-storage.jar
48java.vendorOracle Corporation
49file.separator\
50java.vendor.url.bughttp://bugreport.sun.com/bugreport/
51sun.io.unicode.encodingUnicodeLittle
52sun.cpu.endianlittle
53sun.desktopwindows
54sun.cpu.isalistamd64
  • 由JAVA命令SET PROPERTY

 获取系统配置属性及对应的值

public static void main(String[] args) {
//		testThreadPoolExecutor();
		
		
		Properties pro= System.getProperties();
		Enumeration<Object> enum1=	pro.keys();
		while (enum1.hasMoreElements()) {
		
			Object key=enum1.nextElement();
			System.out.println("key="+key+" valuse="+pro.get(key));
			
		}

输出结果如下:

 

key=java.runtime.name   valuse=Java(TM) SE Runtime Environment
key=sun.boot.library.path   valuse=D:\Program Files\Java\jre8\bin
key=java.vm.version   valuse=25.0-b70
key=java.vm.vendor   valuse=Oracle Corporation
key=java.vendor.url   valuse=http://java.oracle.com/
key=path.separator   valuse=;
key=java.vm.name   valuse=Java HotSpot(TM) 64-Bit Server VM
key=file.encoding.pkg   valuse=sun.io
key=user.country   valuse=CN
key=user.script   valuse=
key=sun.java.launcher   valuse=SUN_STANDARD
key=sun.os.patch.level   valuse=
key=java.vm.specification.name   valuse=Java Virtual Machine Specification
key=user.dir   valuse=D:\worksplace\shenzhou-gaotie\j2seTest
key=java.runtime.version   valuse=1.8.0-b132
key=java.awt.graphicsenv   valuse=sun.awt.Win32GraphicsEnvironment
key=java.endorsed.dirs   valuse=D:\Program Files\Java\jre8\lib\endorsed
key=os.arch   valuse=amd64
key=java.io.tmpdir   valuse=C:\Users\gavin\AppData\Local\Temp\
key=line.separator   valuse=

key=java.vm.specification.vendor   valuse=Oracle Corporation
key=user.variant   valuse=
key=os.name   valuse=Windows 8.1
key=sun.jnu.encoding   valuse=GBK
key=java.library.path   valuse=D:\Program Files\Java\jre8\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\drive\oracle;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\Program Files\VisualSVN Server\bin;D:\Program Files\Java\jdk1.8.0\bin;D:\Program Files\Java\jdk1.8.0\jre\bin;:D:\Program Files\Java\apache-tomcat-8.5.14\lib;D:\Program Files\Java\apache-tomcat-8.5.14\bin;D:\Program Files\TortoiseSVN\bin;D:\Users\android_studio_sdk\platform-tools;D:\Users\android_studio_sdk\tools;C:\Users\jingx\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3\bin;d:\Program Files\IDM Computer Solutions\UltraEdit;C:\WINDOWS\System32\OpenSSH\;C:\Users\gavin\AppData\Local\Microsoft\WindowsApps;;.
key=java.specification.name   valuse=Java Platform API Specification
key=java.class.version   valuse=52.0
key=sun.management.compiler   valuse=HotSpot 64-Bit Tiered Compilers
key=os.version   valuse=6.3
key=user.home   valuse=C:\Users\gavin
key=user.timezone   valuse=
key=java.awt.printerjob   valuse=sun.awt.windows.WPrinterJob
key=file.encoding   valuse=UTF-8
key=java.specification.version   valuse=1.8
key=java.class.path   valuse=D:\worksplace\shenzhou-gaotie\j2seTest\bin
key=user.name   valuse=gavin
key=java.vm.specification.version   valuse=1.8
key=sun.java.command   valuse=com.gavin.thread.MyThreadPool
key=java.home   valuse=D:\Program Files\Java\jre8
key=sun.arch.data.model   valuse=64
key=user.language   valuse=zh
key=java.specification.vendor   valuse=Oracle Corporation
key=awt.toolkit   valuse=sun.awt.windows.WToolkit
key=java.vm.info   valuse=mixed mode
key=java.version   valuse=1.8.0
key=java.ext.dirs   valuse=D:\Program Files\Java\jre8\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
key=sun.boot.class.path   valuse=D:\Program Files\Java\jre8\lib\resources.jar;D:\Program Files\Java\jre8\lib\rt.jar;D:\Program Files\Java\jre8\lib\sunrsasign.jar;D:\Program Files\Java\jre8\lib\jsse.jar;D:\Program Files\Java\jre8\lib\jce.jar;D:\Program Files\Java\jre8\lib\charsets.jar;D:\Program Files\Java\jre8\lib\jfr.jar;D:\Program Files\Java\jre8\classes
key=java.vendor   valuse=Oracle Corporation
key=file.separator   valuse=\
key=java.vendor.url.bug   valuse=http://bugreport.sun.com/bugreport/
key=sun.io.unicode.encoding   valuse=UnicodeLittle
key=sun.cpu.endian   valuse=little
key=sun.desktop   valuse=windows
key=sun.cpu.isalist   valuse=amd64

 自定义属性

用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32          使用 32 位数据模型 (如果可用)
    -d64          使用 64 位数据模型 (如果可用)
    -server       选择 "server" VM
                  默认 VM 是 server.

    -cp <目录和 zip/jar 文件的类搜索路径>
    -classpath <目录和 zip/jar 文件的类搜索路径>
                  用 ; 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。
    -D<名称>=<值>
                  设置系统属性
    -verbose:[class|gc|jni]
                  启用详细输出
    -version      输出产品版本并退出
    -version:<值>
                  警告: 此功能已过时, 将在
                  未来发行版中删除。
                  需要指定的版本才能运行
    -showversion  输出产品版本并继续
    -jre-restrict-search | -no-jre-restrict-search
                  警告: 此功能已过时, 将在
                  未来发行版中删除。
                  在版本搜索中包括/排除用户专用 JRE
    -? -help      输出此帮助消息
    -X            输出非标准选项的帮助
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  按指定的粒度启用断言
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  禁用具有指定粒度的断言
    -esa | -enablesystemassertions
                  启用系统断言
    -dsa | -disablesystemassertions
                  禁用系统断言
    -agentlib:<libname>[=<选项>]
                  加载本机代理库 <libname>, 例如 -agentlib:hprof
                  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:<pathname>[=<选项>]
                  按完整路径名加载本机代理库
    -javaagent:<jarpath>[=<选项>]
                  加载 Java 编程语言代理, 请参阅 java.lang.instrument
    -splash:<imagepath>

示例代码

-D<名称>=<值>
设置系统属性
java -Dtest=1234 com.sparrow.jdk.os.SystemProperty 1 2 3 4



/**
 * java -Dtest=1234 com.sparrow.jdk.os.SystemProperty  1 2 3 4
 */
public class SystemProperty {
  
    public static void main(String[] args) {
        for(int i=0;i<args.length;i++){
            System.out.println(args[i]);
        }
        System.out.println(System.getProperty("test"));
        System.out.println(System.getProperty("user.home"));
    }
}

通过System.setProperty方法设置

System.setProperty("test","test");
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值