文档章节

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

星痕2018
 星痕2018
发布于 2012/05/29 23:17
字数 1071
阅读 29564
收藏 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
粉丝 9
博文 68
码字总数 15754
作品 0
石家庄
程序员
私信 提问
System.getProperty("user.dir")

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

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

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

Shawn_Cheung
2014/05/26
0
0
[转] Java 启动参数大全

前段时间系统升级时遭遇了OOM,具体解决过程见 遭遇OutOfMemoryError; 为了巩固对于java启动各项参数的认识,决定将所有参数列举出来,并一一解释,以便后查; java启动参数共分为三类; 其一...

dodojava
2011/06/08
0
1
java的System.getProperty()方法可以获取的值

java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 ja...

cRaZy_JaZa
2013/10/16
0
0
Java 根据环境属性区分不同操作系统

Java 根据环境属性区分不同操作系统 之前项目需要配置下载文件的路径,本机系统是win 10 ,而服务器系统是CentOS。配置默认下载路径(非项目内相对路径),就会出现问题。windows 路径是由盘...

肖安安
2018/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CTS测试流程及注意事项

一、测试前的准备 1.测试环境:在Linux系统下测试 安装SDK,JDK,ADB,Python工具包。 2.下载媒体文件包: 下载网站:https://source.android.com/compatibility/cts/downloads (在网页的最下方...

天王盖地虎626
17分钟前
0
0
技术码霸阐述——Spring Cloud Netflix:熔断器:Hystrix Clients

Netfilix创建了一个名为Hystrix的库,实现了熔断器模式。在微服务架构中,它通常有多个服务调用层。 一: 微服务图 一个底层服务的故障会引发直至用户交互层的连锁故障。在一个设定时长为“m...

java知识分子
23分钟前
0
0
Git代码防丢指南

我们在日常使用Git的过程中经常会发生一些意外情况,如果处理不当,则可能会出现代码丢失的假象。本文将针对IDEA&Git日常开发中的一些场景,为你层层拨开迷雾,解析常见的错误及其发生原因,...

joymufeng
48分钟前
2
0
传统IDC部署网站(三)

16. chown命令 chown 用来更改一个文件或者目录的所有者护着所属组 -R 级联更改一个目录下所有的目录和文件 chown user1:users 1.txtchown user1.users 1.tx useradd 添加用户的命令 user...

miko0089
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部