Java获取当前操作系统的信息实例代码
作者:SuPhoebe 发布时间:2023-03-07 20:00:08
标签:java,获取当前系统信息
主流有几种方法,一种是用下面的函数
publicstaticStringgetProperty(Stringkey)
键 | 相关值的描述 |
---|---|
java.version | java.version Java 运行时环境版本 |
java.vendor | java.vendor Java 运行时环境供应商 |
java.vendor.url | java.vendor.url Java 供应商的 URL |
java.home | java.home Java 安装目录 |
java.vm.specification.version | java.vm.specification.version Java 虚拟机规范版本 |
java.vm.specification.vendor | java.vm.specification.vendor Java 虚拟机规范供应商 |
java.vm.specification.name | java.vm.specification.name Java 虚拟机规范名称 |
java.vm.version | java.vm.version Java 虚拟机实现版本 |
java.vm.vendor | java.vm.vendor Java 虚拟机实现供应商 |
java.vm.name | java.vm.name Java 虚拟机实现名称 |
java.specification.version | java.specification.version Java 运行时环境规范版本 |
java.specification.vendor | java.specification.vendor Java 运行时环境规范供应商 |
java.specification.name | java.specification.name Java 运行时环境规范名称 |
java.class.version | java.class.version Java 类格式版本号 |
java.class.path | java.class.path Java 类路径 |
java.library.path | java.library.path 加载库时搜索的路径列表 |
java.io.tmpdir | java.io.tmpdir 默认的临时文件路径 |
java.compiler | java.compiler 要使用的 JIT 编译器的名称 |
java.ext.dirs | java.ext.dirs 一个或多个扩展目录的路径 |
os.name | os.name 操作系统的名称 |
os.arch | os.arch 操作系统的架构 |
os.version | os.version 操作系统的版本 |
file.separator | file.separator 文件分隔符(在 UNIX 系统中是“/”) |
path.separator | path.separator 路径分隔符(在 UNIX 系统中是“:”) |
line.separator | line.separator 行分隔符(在 UNIX 系统中是“/n”) |
user.name | user.name 用户的账户名称 |
user.home | user.home 用户的主目录 |
user.dir | user.dir 用户的当前工作目录 |
一种是用命令行来获取
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
public class test {
//通过截取cmd流方式得到计算机的配置信息(不好)
public static List<String> getIpAddress() {
Process p = null;
List<String> address = new ArrayList<String>();
try {
p = new ProcessBuilder("ipconfig", "/all").start();
}
catch (Exception e) {
return address;
}
StringBuffer sb = new StringBuffer();
//读取进程输出值
InputStream inputStream = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String s = "";
try {
while ((s = br.readLine()) != null) {
sb.append(s + "\n");
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
inputStream.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(sb);
return address;
}
public static void getIpconfig() {
Map<String, String> map = System.getenv();
System.out.println(map.get("USERNAME"));
//获取用户名
System.out.println(map.get("COMPUTERNAME"));
//获取计算机名
System.out.println(map.get("USERDOMAIN"));
//获取计算机域名
}
//得到计算机的ip地址和mac地址
public static void getConfig() {
try {
InetAddress address = InetAddress.getLocalHost();
NetworkInterface ni = NetworkInterface.getByInetAddress(address);
//ni.getInetAddresses().nextElement().getAddress();
byte[] mac = ni.getHardwareAddress();
String sIP = address.getHostAddress();
String sMAC = "";
Formatter formatter = new Formatter();
for (int i = 0; i < mac.length; i++) {
sMAC = formatter.format(Locale.getDefault(), "%02X%s", mac[i],
(i < mac.length - 1) ? "-" : "").toString();
}
System.out.println("IP:" + sIP);
System.out.println("MAC:" + sMAC);
}
catch (Exception e) {
e.printStackTrace();
}
}
//得到计算机的ip,名称,操作系统名称,操作系统版本
public static void Config() {
try {
InetAddress addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress().toString();
//获取本机ip
String hostName = addr.getHostName().toString();
//获取本机计算机名称
System.out.println("本机IP:" + ip + "\n本机名称:" + hostName);
Properties props = System.getProperties();
System.out.println("操作系统的名称:" + props.getProperty("os.name"));
System.out.println("操作系统的版本:" + props.getProperty("os.version"));
}
catch (Exception e) {
e.printStackTrace();
}
}
//其它的一些东西,会有用到的时候的
public static void all() {
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"));
}
public static void main(String[] args) {
getConfig();
Config();
all();
}
}
来源:http://blog.csdn.net/u013007900/article/details/50428943
0
投稿
猜你喜欢
- 前言:本文源码基于spring-framework-5.3.10。mvc是spring源码中的一个子模块!一、RequestMappingH
- 背景Swagger 可以提供 API 操作的测试文档,本文记录 Swagger 使用过程中遇到的两个小问题:全局响应结果进行包装后导致 Sw
- 我们知道,在 Python 里面,如果你要运行一段 JavaScript,你可以使用execJS这种第三方库。那么在 Golang 里面,你
- 前言在平时的项目开发中,mybatis应用非常广泛,但一般都是直接CRUD类型sql的执行。本片博客主要说明一个另类的操作,注入sql,并使
- 实现代码:// 例如:(new Money(200)).ToString() == "贰佰元"namespace Sky
- @Autowired注解和静态方法及new关系一、@autowired 与new new出来的对象无法调用@Autowired注入
- 引言今天给大家介绍一个非常有意思类库,基于java实现的简繁体转换,适用于后端、android等开发领域源码地址:* liuyueyi/qu
- 本文实例讲述了C#获取每个年,月,周的起始日期和结束日期的方法。分享给大家供大家参考,具体如下:我们在写程序的时候往往要计算出年,月,周的开
- 首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.spring
- 如果运行react-native android项目出现如下错误:解决办法如下:一、执行adb devices,判断adb有没有断,二、如果
- 本文实例讲述了C#使用winform简单导出Excel的方法。分享给大家供大家参考,具体如下:using Excel;在项目中引入Excel
- 利用反射获取对象的所有属性及对应的值1、获取属性名数组private static String[] getFiledName(Object
- 项目中需要判断传入的日期是否在未来的一年以内,百度了一下网上没有找到好的方式,写了,方便自己和他人:int datecompareAfter
- 在使用Mybatis时,有的时候我们可以不用定义resultMap,而是直接在<select>语句上指定resultType。这
- 动态SQL简介动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQ
- 为什么需要组件化小项目是不需要组件化的。当一个项目有数十个人开发,编译项目要花费10分钟,修改一个bug就可能会影响到其他业务,小小的改动就
- 1.Spring IOC容器可以管理bean的生命周期,Spring允许在bean生命周期内特定的时间点执行指定的任务。2.Spring I
- 前几天,公司数据库出现了两条相同的数据,而且时间相同(毫秒也相同)。排查原因,发现是网络波动造成了重复提交。由于网络波动而重复提交的例子也比
- C#移除字符串中的不可见Unicode字符 背景最近发现某个数据采集的系统拿下来的数据,有些字段的JSON被莫名截断了,导致后续数
- 一、代理模式 代理模式是常用的java设计模式,特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委