文档章节

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

星痕2018
 星痕2018
发布于 2012/05/29 23:17
字数 1071
阅读 6.2W
收藏 17

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

在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
粉丝 10
博文 68
码字总数 16428
作品 0
石家庄
程序员
私信 提问
加载中
请先登录后再评论。
JVM系统属性 OS环境变量 JVM启动参数

JVM系统属性(System Properties) 1.不支持通过文件查看和设置系统属性 2.可以通过JDK自带的工具jvisulavm.exe查看 3.可以在Java程序中使用API来查看系统属性: System.getProperties(), Sy...

osc_fhl05ph9
2019/06/06
35
0
获得系统属性

System.getProperty()参数大全 查资料用: java.version Java Runtime Environment version java.vendor Java Runtime Environment vendor java.vendor.url Java vendor URL java.home Java ......

土鳖的弟弟
2014/07/18
112
0
System.getProperty("user.dir")

System.getProperty("user.dir"); 获得系统属性 getProperties public static Properties getProperties() 确定当前的系统属性。 首先,如果有安全管理器,则不带参数直接调用其 checkPrope......

小落i
2014/03/27
425
0
System.setProperty 与 System.getProperty

System可以有对标准输入,标准输出,错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。 System.getProperties()可以确定当前的系统...

Shawn_Cheung
2014/05/26
601
0
java命令详解 java -D

JAVA 命令参数详解: 1、-D<name>=<value> set a system property 设置系统属性。 java -D参数简化加入多个jar java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个...

村长大神
2015/01/30
26
0

没有更多内容

加载失败,请刷新页面

加载更多

还在用Swagger(丝袜哥)生成接口文档?我推荐你试试它.....

JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后...

路人甲Java
07/09
7
0
智能仓储的独角兽逻辑

智能仓储的主要应用市场在哪里?客户的付费意愿和付费能力如何? 1、仓储设备具备标准化和通用化特点 由于电商和新零售的快速发展,轻工业品零售仓库的需求量大幅增加。而中国又是全球轻工业...

logiter
2019/08/23
14
0
可是小腿哪能扭过大腿

父亲是一个特别勤苦的人,他从不睡懒觉,每天天麻麻亮,或是下地干活,或是在家搞副业,或是拿着铁锨、粪筐,到路边,到村子周围,到牲畜常出入的地方,去拾粪蛋子,为庄稼积攒肥料,父亲不仅...

瑾123
33分钟前
16
0
一个volatile跟面试官扯了半个小时

《安琪拉与面试官二三事》系列文章,本文是此系列第三篇 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 欢迎关注Wx公众号:【安琪拉的博客】—揭秘Java后端技术,...

osc_6ls9vwji
33分钟前
0
0
内网渗透靶机-VulnStack 2

WEB服务器:windows2008系统 外网网卡IP:192.168.1.152 内网网卡IP:10.10.10.80 域成员:windows server 2003系统 网卡IP:10.10.10.200 域控服务器:windows server 2008系统 网卡IP:192...

dnsil
07/10
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部