文档章节

Java中系统属性Properties介绍 System.getProperty()参数大全

星痕2018
 星痕2018
发布于 2012/05/29 23:17
字数 1071
阅读 29168
收藏 17
点赞 4
评论 0
在JDK文档中System类中有这样的方法getProperties()在此方法的详细介绍中有下面的参数可供使用:

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 用户的当前工作目录

下面是针对这些参数进行的一个测试,代码如下:
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import java.util.Set;
public class MyJavaMain {

	public static void main(String[] args) throws Exception {

		//通过StringBuilder来构建要输出的内容
		StringBuilder sb = new StringBuilder();
		sb.append("Java 运行时环境版本:"+System.getProperty("java.version")+"\n");
		sb.append("Java 运行时环境供应商:"+System.getProperty("java.vendor")+"\n");
		sb.append("Java 供应商的URL:"+System.getProperty("java.vendor.url")+"\n");
		sb.append("Java 安装目录:"+System.getProperty("java.home")+"\n");
		sb.append("Java 虚拟机规范版本:"+System.getProperty("java.vm.specification.version")+"\n");
		sb.append("Java 类格式版本号:"+System.getProperty("java.class.version")+"\n");
		sb.append("Java类路径:"+System.getProperty("java.class.path")+"\n");
		sb.append("加载库时搜索的路径列表:"+System.getProperty("java.library.path")+"\n");
		sb.append("默认的临时文件路径:"+System.getProperty("java.io.tmpdir")+"\n");
		sb.append("要使用的 JIT 编译器的名称:"+System.getProperty("java.compiler")+"\n");
		sb.append("一个或多个扩展目录的路径:"+System.getProperty("java.ext.dirs")+"\n");
		sb.append("操作系统的名称:"+System.getProperty("os.name")+"\n");
		sb.append("操作系统的架构:"+System.getProperty("os.arch")+"\n");
		sb.append("操作系统的版本:"+System.getProperty("os.version")+"\n");
		sb.append("文件分隔符(在 UNIX 系统中是“/”):"+System.getProperty("file.separator")+"\n");
		sb.append("路径分隔符(在 UNIX 系统中是“:”):"+System.getProperty("path.separator")+"\n");
		sb.append("行分隔符(在 UNIX 系统中是“/n”):"+System.getProperty("line.separator")+"\n");
		sb.append("用户的账户名称:"+System.getProperty("user.name")+"\n");
		sb.append("用户的主目录:"+System.getProperty("user.home")+"\n");
		sb.append("用户的当前工作目录:"+System.getProperty("user.dir")+"\n");
	
		//新建一个文件,如果该文件不存在则创建一个
		File file = new File("c:\\t.txt");
		if( !file.exists()){
			file.createNewFile();
		}
		OutputStream ous = new FileOutputStream(file);
	
		//获取系统的属性
		Properties ps = System.getProperties();
		//获得系统属性中的键值
		Set<String> set = ps.stringPropertyNames();
		for(String name: set){
			sb.append(name + " : " +ps.getProperty(name) + "\n");
			System.out.println(name + " : " +ps.getProperty(name) );
		}
		ous.write(sb.toString().getBytes());
		ous.close();

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

	/**
	* 获取本地主机
	* @return 
	*/
	public static InetAddress getInetAddress() {
		try {
			return InetAddress.getLocalHost();
		} catch (UnknownHostException e) {
			System.out.println("unknown host!");
		}
		return null;
	} 

	/**
	* 通过InetAddress获取本地Ip
	* @param netAddress
	* @return 
	*/
	public static String getHostIp(InetAddress netAddress) {
		if (null == netAddress) {
			return null;
		}
		String ip = netAddress.getHostAddress();
		return ip;
	}

	/**
	* 通过InetAddress获取本地主机的名字
	* @param netAddress
	* @return 
	*/
	public static String getHostName(InetAddress netAddress) {
		if (null == netAddress) {
			return null;
		}
		String name = netAddress.getHostName();
		return name;
	}
}

然而在Android系统中,却要使用另一种方法才能遍历获得系统的一些属性
Properties ps = System.getProperties();
Set<Entry<Object, Object>> set = ps.entrySet();
for(Entry<Object, Object> ent : set){
	Log.v("ent", "key:" + ent.getKey() + " |value: " + ent.getValue());
}

© 著作权归作者所有

星痕2018
粉丝 9
博文 59
码字总数 12661
作品 0
石家庄
程序员
Gradle学习(九)——构建环境

转载请注明出处:http://blog.csdn.net/lastsweetop/article/details/78914742 通过gradle.properties配置构建环境 为了更容易的配置用于构建的java进程,Gradle提供了几个选项。你可以在本地...

lastsweetop ⋅ 2017/12/27 ⋅ 0

Android JNI学习(三)——Java与Native相互调用

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头 ⋅ 05/09 ⋅ 0

【Canal源码分析】Canal Server的启动和停止过程

本文主要解析下canal server的启动过程,希望能有所收获。 一、序列图 1.1 启动 1.2 停止 二、源码分析 整个server启动的过程比较复杂,看图难以理解,需要辅以文字说明。 首先程序的入口在C...

端木轩 ⋅ 05/24 ⋅ 0

Android JNI学习(四)——JNI的常用方法的中文API

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头 ⋅ 05/09 ⋅ 0

Spring Boot+Profile实现不同环境读取不同配置

文件结构如下: 但是官方推荐放在config文件夹下。 作用: 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中。prod环境下的配置配置在application...

easonjim ⋅ 2017/11/07 ⋅ 0

Jmeter之Bean shell使用

 上一篇简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下: 一、操作变量 二、操作属性 三、...

覃光林 ⋅ 05/10 ⋅ 0

基于可靠消息方案的分布式事务(二):Java中的事务

前言:在上一篇文章 基于可靠消息方案的分布式事务:Lottor介绍 中介绍了常见的分布式事务的解决方案以及笔者基于可靠消息方案实现的分布式事务组件Lottor的原理,并展示了应用的控制台管理。...

aoho ⋅ 06/01 ⋅ 0

RMI:Java中的分布式计算框架

RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一。其实...

qq_39521554 ⋅ 05/15 ⋅ 0

从Java小白到架构师必须要看的书籍,真正的“武林秘籍”!

少年,我看你骨骼精奇,将是未来万中无一的IT精英,很是适合学JAVA。维护世界和平就看你的了,我这里有能让你成为IT精英的办法!还不来看看! 基础类 1、《Thinking in Java》,入门第一位是...

启示录是真的 ⋅ 05/25 ⋅ 0

《成神之路-基础篇》JVM——JVM参数及调优(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收 本文是[《成神之路系列文章》][1]的第一篇,主要是关于JVM的一些介绍。 持续更新中 JVM参数及调优 JVM实用参数系列 成为Java GC专家(5)...

⋅ 05/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长...

颖辉小居 ⋅ 18分钟前 ⋅ 0

利用有限制通配符提升API灵活性(28)

1、参数化类型是不可变的 List<String> 不是List<Object>的子类,但是二者是有联系的 利用有限制的通配符类型处理类似情况 List<? extends Object>(生产者) Collection<? super E>(消费者......

职业搬砖20年 ⋅ 24分钟前 ⋅ 0

ssm框架 +bootstrap分页

这里有两种方式 方式一:自己写分页 方式二:使用插件PageHelper 1.自己写分页 1.1 效果 1.2 实现过程 1.2.1 创建分页公共类 //---------------------------1.属性-------------------------...

Lucky_Me ⋅ 31分钟前 ⋅ 0

Istio

helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml after $ kubectl create namespace istio-system$ kubectl create -f $HOME/ist......

openthings ⋅ 31分钟前 ⋅ 0

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 36分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 37分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 41分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 53分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 59分钟前 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部