Java 获取电脑 CPU 个数及系统信息

本文介绍了如何通过Java的Runtime和System类获取计算机的CPU个数、系统属性以及系统参数,包括Java版本、供应商信息等,展示了实用的系统信息获取方法。

Java 获取电脑 CPU 个数及系统信息

标题Runtime 类:
  • 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。应用程序不能创建自己的 Runtime类实例, 可以通过 getRuntime() 方法获取当前运行时。
Properties 类:
  • Properties 类表示了一个持久的属性集。Properties可保存在流中或从流中加载属性列表中每个键及其对应值都是一个字符串。list(PrintStream out) 或者 list(PrintWriter out) 方法将属性列表输出到指定的输出流。
System 类:
  • System 类包含一些有用的类字段和方法。它不能被实例化。在 System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。getProperties()方法确定当前的系统属性。
import java.util.Properties;// 导入 Properties 类
public class SystemInfo{
 public static void main(String args[]){
  Properties p=System.getProperties();// 获取当前的系统属性
  p.list(System.out);// 将属性列表输出
  System.out.print("CPU 个数:");//Runtime.getRuntime() 获取当前运行时的实例
  System.out.println(Runtime.getRuntime().availableProcessors());//availableProcessors() 获取当前电脑 CPU 数量
  System.out.print("虚拟机内存总量:");
  System.out.println(Runtime.getRuntime().totalMemory());//totalMemory() 获取 java 虚拟机中的内存总量
  System.out.print("虚拟机空闲内存量:");
  System.out.println(Runtime.getRuntime().freeMemory());//freeMemory() 获取 java 虚拟机中的空闲内存量
  System.out.print("虚拟机使用最大内存量:");
  System.out.println(Runtime.getRuntime().maxMemory());//maxMemory() 获取 java 虚拟机试图使用的最大内存量
 }
}
  • 方法简单实用,虽然不是经常用,但是还是有必要去了解一下,因为不可能每次遇到不会的都拿出字典来查阅。但搞开放最重要的是拿到资料会运用,我们也不可能把所有的类、方法和属性等全部记住,所以要会看
    API 和应用。
  • 在本例中,我们要获取系统信息,要用到 Properties 类,首先要创建一Properties 对象,然后通过 System 类的getProperties() 方法获取当前系统的信息。然后把获取到的系统属性交Properties对象,该对象保存着系统信息的集合。最后由 Properties 类的 list 方法,把信息输出。Runtime类的几个方法可以相应的获取其他的信息。只要我们熟悉这些方法,自然能应用。
下面将介绍 System.getProperty 系统参数:
Properties props=System.getProperties(); // 系统属性
System.out.println("Java 的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java 的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java 供应商的 URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java 的安装路径:"+props.getProperty("java.home"));
System.out.println("Java 的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
System.out.println("Java 的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
System.out.println("Java 的虚拟机规范名称:"+props.getProperty("java.vm.specification.name"));
System.out.println("Java 的虚拟机实现版本:"+props.getProperty("java.vm.version"));
System.out.println("Java 的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
System.out.println("Java 的虚拟机实现名称:"+props.getProperty("java.vm.name"));
System.out.println("Java 运行时环境规范版本:"+props.getProperty("java.specification.version"));
System.out.println("Java 运行时环境规范供应商:"+props.getProperty("java.specification.vender"));
System.out.println("Java 运行时环境规范名称:"+props.getProperty("java.specification.name"));
System.out.println("Java 的类格式版本号:"+props.getProperty("java.class.version"));
System.out.println("Java 的类路径:"+props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系统的名称:"+props.getProperty("os.name"));
System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator"));   // 在 unix 系统中是"/"
System.out.println("路径分隔符:"+props.getProperty("path.separator"));   // 在 unix 系统中是":"
System.out.println("行分隔符:"+props.getProperty("line.separator"));   // 在 unix 系统中是"/n"
System.out.println("用户的账户名称:"+props.getProperty("user.name"));
System.out.println("用户的主目录:"+props.getProperty("user.home"));
System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));

转自:http://bingoffice.blog.163.com/blog/static/17403510420115109343883/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值