Java获取当前操作系统的信息实例代码
作者:SuPhoebe 时间:2023-03-07 20:00:08
主流有几种方法,一种是用下面的函数
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
标签:java,获取当前系统信息
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java编程实现提取文章中关键字的方法
2022-10-10 22:08:42
Spring/SpringBoot @RequestParam注解无法读取application/json格式数据问题解决
2023-11-26 11:26:29
![](https://img.aspxhome.com/file/2023/7/93147_0s.jpg)
Android仿微信二维码和条形码
2021-09-02 03:46:22
![](https://img.aspxhome.com/file/2023/9/101849_0s.jpg)
JAVA反射机制实例教程
2023-11-25 23:33:47
Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E的原因分析
2023-01-07 04:22:29
C#难点逐个击破(3):params数组参数
2022-01-17 14:40:22
![](https://img.aspxhome.com/file/2023/7/102197_0s.png)
C#实现剪刀石头布游戏
2021-11-10 05:19:32
![](https://img.aspxhome.com/file/2023/7/91377_0s.jpg)
Java中ArrayList和SubList的坑面试题
2023-09-21 06:56:21
![](https://img.aspxhome.com/file/2023/5/76625_0s.png)
springcloud干货之服务注册与发现(Eureka)
2021-07-08 11:04:23
![](https://img.aspxhome.com/file/2023/1/70961_0s.png)
springboot使用redis实现从配置到实战
2023-05-05 09:49:08
对Mapper 中几种update的区别说明
2023-05-19 04:39:44
解决Java中OutOfMemoryError的问题
2023-01-26 13:51:03
![](https://img.aspxhome.com/file/2023/8/76498_0s.png)
JavaMail入门教程之发送邮件(3)
2023-02-01 20:01:16
![](https://img.aspxhome.com/file/2023/5/71215_0s.jpg)
MyBatis批量添加、修改和删除
2023-12-07 05:13:31
java学习之利用TCP实现的简单聊天示例代码
2021-07-13 00:43:18
idea中同一SpringBoot项目多端口启动
2023-05-09 06:39:27
![](https://img.aspxhome.com/file/2023/0/88060_0s.png)
C#实现时间戳与标准时间的互转
2023-07-16 08:09:38
![](https://img.aspxhome.com/file/2023/4/108724_0s.png)
Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)
2023-08-28 01:36:01
![](https://img.aspxhome.com/file/2023/0/139530_0s.png)
浅谈Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别
2023-10-29 20:08:53
![](https://img.aspxhome.com/file/2023/4/68154_0s.png)
Android入门之画图详解
2023-11-09 11:47:47
![](https://img.aspxhome.com/file/2023/4/93264_0s.jpg)