Java系统属性与Preferences API的简单介绍

摘要:
系统属性和首选项API都是键值对。前者只能在当前应用程序中共享数据,而后者可以在用户的应用程序或用户之间共享数据。在示例中,使用了用户偏好,因此同一用户的其他应用程序也可以获得关键字“网站”的值。你可以自己试试。

系统属性在和Preferences API都是键值对,前者只能当前应用程序中共享数据,而后者可以在用户的各个应用或用户之间共享数据。

系统属性

Java 的系统属性决定了 Java 程序实际运行的环境,默认情况下,JVM 启动时采用系统默认属性值。系统属性顾名思义是指与用户程序相关的操作系统配置信息以及软件信息,位于java.lang包中。

设计到的方法:

//获取当前的所有系统属性
public static Properties getProperties()
//设置当前的系统属性
public static void setProperties(Properties props)
//获取指定键的系统属性
public static String getProperty(String key)
//获取指定键的系统属性,def为默认值
public static String getProperty(String key,String def)
//设置指定键的系统属性
public static String setProperty(String key,String value)
//移除指定键指示的系统属性
public static String clearProperty(String key)

示例

package net.oseye;

public class RunMain {

	public static void main(String[] args) {
		System.out.println(System.getProperty("java.home"));
		System.setProperty("website", "oseye.net");
		System.out.println(System.getProperty("website"));
	}
}

输出

C:Program FilesJavajre7
oseye.net

系统属性还可以在执行程序的时使用 -D的方式设置这个属性的值,如这样执行示例:

java -Djava.home=mytest net.oseye.RunMain

输出

mytest

Java的所有默认的系统属性

java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

Preferences API首选项和配置数据

Preferences API 是轻型的、跨平台的持久性 API,用来存储少量数据的,它是在 JDK 1.4中引入的。它不是为了为传统数据库引擎提供一个接口,而是用恰当的、操作系统特定的后端以实现真正的持久性,位于java.util.prefs包中。

此数据持久存储在依赖于实现的内部存储中。有两个独立的首选项节点树,一个用于用户首选项(userRoot),一个用于系统首选项(sysRoot)。

用户首选项是同一用户共享数据,而系统首选项是所有用户共享。

示例

package net.oseye;

import java.util.prefs.Preferences;

public class RunMain {

	public static void main(String[] args) {
		Preferences root = Preferences.userRoot();
		root.put("website", "oseye.net");
		System.out.println(root.get("website", "NotFound"));
	}
}

输出

oseye.net

相关的方法:

//将指定值与此首选项节点中的指定键相关联
public abstract void put(String key,String value)
//返回与此首选项节点中指定键相关联的值,def为默认值
public abstract String get(String key,String def)

还有很多相应类型的get和put如:getInt,putInt,getLong,putLong等等。

示例中使用的是用户首选项,所以同一个用户的其他应用程序同样可以获取键“website”的值,可以自己动手试试。

免责声明:文章转载自《Java系统属性与Preferences API的简单介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt封装QTcpServer参考资料--QTcpServer多线程实现SVG技术入门:线条动画实现原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

把页面的Table直接输出到Excel文件中

有个需求是统计的时候,为生成的html表格提供导出功能,但是这样导出Excel不会显示自身的表格 影响美观,但是excel会显示html的css样式,这里可以通过处理行对象的方式进行导出,但是处理起纵向合并比较麻烦,这里待续! 1 String newStr = new String(name.getBytes(), "ISO8859_1"); 2 res...

Dozer 使用小结

目录   概述  安装  使用  Dozer支持的数据类型转换  Dozer的映射配置  参考 这篇文章是本人在阅读Dozer官方文档(5.5.1版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景。 本文中提到的例子应该能覆盖JavaBean映射的大部分场景,希望对你有所帮助。 概述 Dozer是什么? Dozer是一个Jav...

hive基础1

Hive基础 1、介绍 Hive是OLAP(online analyze process,在线分析处理)。通常称为数据仓库,简称数仓。内置很多分析函数,可进行海量数据的在线分析处理。hive构建在hadoop之上,使用hdfs作为进行存储,计算过程采用的是Mapreduce完成,本质上hive是对hadoop的mr的封装,通过原始的mr方式进行数据处理与分...

django-开发博客1(前后端不分离模式)

首先将个人博客模板<<simple>>解压,解压如下图: 将index.html复制到templates目录下,覆盖之前的index.html,然后刷新http://127.0.0.1:8000/index/,首先会报错,来到index.html页面里,将charset改成utf-8,再刷新就可以看到杨青的个人博客,但是页面样式不...

第十八节:Asp.Net Core WebApi基础总结和请求方式

一. 基础总结 1.Restful服务改造   Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方法名。 但是我们不喜欢这种方式,所以我们将默认的路由规则 [Route("api/[controller]")] 改为: [Route("api/[con...

File类。

File类: java.io.File 类。是文件和文件夹目录名的抽象表示形式。 可以用File对文件和文件夹进行 创建,删除,获取等操作。 File类的一些静态成员变量:   static String pathSeparator :路径分隔符, Windows:分号 Linux:冒号。   static String separator :文件名称分隔...