系统属性在和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 Files\Java\jre7
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的简单介绍的更多相关文章

  1. java系统属性

    java系统属性 1. java.runtime.name:java的运行环境名称. 2. sun.boot.library.path:jdk\jre中的bin的路径 3. java.vm.versi ...

  2. JAVA 文件编译执行与虚拟机(JVM)简单介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...

  3. maven中可以直接引用的java系统属性和环境变量属性

    一.查看命令: 1 mvn help :system 二.引用 在pom文件中通过 ${变量名}来引用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  4. java 系统属性

    java.version  Java 运行时环境版本 java.vendor  Java 运行时环境供应商 java.vendor.url  Java 供应商的 URL java.home  Java ...

  5. java 系统属性设置

    一.语法: java -Dproperty=value 二.注意事项: value如果有空格,需用使用双引号如:java -Dfoo="some string" 三.常见使用地方: ...

  6. java中io对文件操作的简单介绍

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  7. Django框架----路由系统、视图和模板(简单介绍)

    一.路由配置系统(urls) URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表: 你就是以这种方式告诉Django,对于这个URL ...

  8. Java中的Number和Math类简单介绍

    Java Number类 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. 实例: int a = 5000; float b = 13.65 ...

  9. Delphi的Win32的API调用简单介绍

    1.     介绍Win32 API和Win32系统.还要讨论Win32系统的功能以及它与16位系统在功能上的几个主要区别.只是让对Win32系统有一个基本的了解.当已经基本了解Win32操作后,就可 ...

随机推荐

  1. MySQL批量导出以某数字或字母开头的表

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://suifu.blog.51cto.com/9167728/1852178 情景:我 ...

  2. Win7 x64 Eclipse无法识别手机 / adb interface有黄色感叹号,无法识别

    今天公司停电,因此把安卓项目带回宿舍做.宿舍的笔记本,装的是Win7 x64,手机连上电脑后,windows可以识别,但Eclipse的DDMS中却无法识别,什么都没有: 然后打开设备管理器查看,发现 ...

  3. php实现断点下载

    HTTP断点续传原理 Http头 Range.Content-Range() HTTP头中一般断点下载时才用到Range和Content-Range实体头, Range用户请求头中,指定第一个字节的位 ...

  4. windows下安装php5.2.*,php5.3.*,php5.4.*版本的memcache扩展

    注:如使用集成环境成功率低,请自行配置php apache,表示win7下wamp php5.4.3基础上配置拓展,成功率极低.费时. 拓展安装调试方法: 编写调试php文件 <?php  me ...

  5. ASP.NET Zero--12.一个例子(5)商品分类管理-编辑分类

    1.添加编辑按钮 打开文件Index.js [..\MyCompanyName.AbpZeroTemplate.Web\Areas\Mpa\Views\Category\Index.js] 在acti ...

  6. localStorage的黑科技-js和css缓存机制

    一.发现黑科技的起因  今天在微信公众号看到一篇技术博文,想用印象笔记收藏,所以发送了文章链接到pc上.然后习惯性地打开控制台,看看源码,想了解下最近微信用了什么新技术.  呵呵,以下勾起了我侦探的欲 ...

  7. Oracle-11g 基于 NBU 的 rman 冷备份及恢复

    html,body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...

  8. Js让光标停在输入框input框最后面

    var val = $(this) val();   1.$(this). focus(); 2.$(this).val(""); 3.$(this).val(val);   1. ...

  9. HDU4734(数位dp)

    F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  10. 在VMWare虚拟机中安装Ubuntu 16.04.1 LTS

    一.需要的准备 安装好VMWare虚拟机(傻瓜式安装,一直next就可以,请支持正版),将Ubuntu的系统镜像下载好,目前最新的LTS版本为16.04.1. 我把虚拟机和Ubuntu镜像传到了百度云 ...