首页 > 编程语言 >Java的System.setProperty()和System.getProperty()

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

时间:2023-09-07 13:25:08浏览次数:65  
标签:java sun System user setProperty Java getProperty

写在前面:

这里的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

 

Java在jvm启动时设置系统属性

Java 允许我们以 -D<name>=<value> 这种键值对的形式设置系统属性,例如:-Duser=Alice 就设置了简单的系统属性,它的键为 user,值为 Alice。随后,我们就可以在程序中检索出 user 的值。

System.getProperty("user"); //Alice

继续举例

java -Djava.net.preferIPv4Stack=true -DsimplifyLogPath=false -DprintHex=true -DmergeLog=true -Dfile.encoding=GBK -Djava.io.tmpdir=./tmp

java -D 是 JVM 的标准选项,我们可以通过它设置系统属性。

 

标签:java,sun,System,user,setProperty,Java,getProperty
From: https://www.cnblogs.com/ricehome/p/17684555.html

相关文章

  • System.Threading.Tasks.Extensions介绍
    System.Threading.Tasks.Extensions是一个用于扩展.NET中任务(Task)的库,它提供了一些额外的功能,特别是在异步编程方面。这个库引入了一些新的方法和功能,包括:ConfigureAwait:它引入了ConfigureAwait方法,允许你在任务之间配置不同的上下文(例如,同步上下文或异步上下文),以便更好地......
  • 简读||Dynamic Metasurface Antennas for Uplink Massive MIMO Systems
    用于上行链路大规模MIMO系统的动态超表面天线摘要:大规模多输入多输出(MIMO)通信是近年来人们广泛关注的焦点。虽然大规模MIMO的理论增益已经确立,但在实践中实现具有大规模天线阵列的MIMO系统仍具有挑战性。与大规模MIMO系统相关的实际挑战包括成本、功耗和物理尺寸的增加。......
  • Android官方资料--A/B System Updates
    A/BSystemUpdatesINTHISDOCUMENTOverviewBootloaderstateexamplesUpdateEnginefeaturesLifeofanA/BupdatePost-installstepImplementationKernelpatchesKernelcommandlineargumentsRecoveryBuildvariablesPartitionsFstabKernelslotargumentsOTApacka......
  • InputSystem学习记录
    安装概念一、创建InputActionsInputActions概念及结构关系在我们InputSystem中所用到结构关系为InputSystem=>InputActions=>ActionMaps=>ActionsActionMaps(表)简单来说我们可以将InputActions视为我们项目里其中一个控制器的输入操作管理集,而ActionMaps则为该控......
  • Proj CDeepFuzz Paper Reading: DeepGauge: multi-granularity testing criteria for
    Abstract本文:DeepGaugeTask:providemulti-granularitytestingcriteriaforDLsystemsMethod:multi-granularitytestingcriteriaforDLsystems:1.k-multisectionNeuronCoverage2.NeuronBoundaryCoverage3.StrongNeuronActivationCoverage4.Top-kN......
  • InstallShield X制作安装程序杂记(5.System Configuration节点)
    1.Shortcuts(快捷方式):快捷方式主要是以下几个地方:StartMenu(开始菜单)/ProgramsMenu(程序菜单)/Startup(启动)/Desktop(桌面)   (1)StartMenu,如果你装了UtraEdit就知道了,点击开始菜单,在上方就可以看到,这是比较cool的一种方式,堪称最快捷。而且很多软件都不往那里装,比较显眼,好......
  • 记遇到的一次system error问题,主要还是ArrayList的线程安全问题
    1、问题:今天在进行页面点击的时候,突然出现了个systemerror弹出提示,而且经过多次点击之后,发现并不是每次都会有这个报错,很偶然的才会有一次报错,所以首先想到应该是跟多线程有关,不然不可能出现随机的错误2、解决:所以就去看日志,发现报错的是这个地方:Arrays.sort(taskTimes);在......
  • WSL中无法使用systemctl命令
    WSL使用system报错"Systemhasnotbeenbootedwithsystemdasinitsystem"(原文链接)[https://linuxhandbook.com/system-has-not-been-booted-with-systemd/]原因ThereasonisthatyouaretryingtousesystemdcommandtomanageservicesonLinuxbutyoursy......
  • vue --version 运行出现throw new ERR_SYSTEM_ERROR 错误
    (1)根据错误提示信息,找到出错入口文件:E:\SVN\zlpt\node_modules\node-ipc\entities\Defaults.js然后指定位置添加如下代码即可:constos=require('os');os.hostname=()=>"localhost";......
  • Proj CDeepFuzz Paper Reading: Deepxplore: Automated whitebox testing of deep lea
    Abstract背景:现有的深度学习测试在很⼤程度上依赖于⼿动标记的数据,因此通常⽆法暴露罕⻅输⼊的错误⾏为。本文:DeepXploreTask:awhite-boxframeworktotestDLModels方法:neuroncoveragedifferentialtestingwithmultipleDLsystems(models)joint-optimizationpro......