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


猜你喜欢
- java使用HttpClient调用接口HttpClient 提供的主要的功能(1)实现了所有 HTTP 的方法(GET,POST,PUT,
- javax.persistence中@Column定义字段类型在@Column中有个比较强大的配置 columnDefinition,如果有
- 多数据源创建数据库CREATE DATABASE mybatis_plus_1;USE mybatis_plus_1;CREATE TABL
- 引言一个复杂的分布式系统,用户发起一个请求,这个请求可能调用几十到几百个服务,经过很多业务层,而每个业务又是多个机器集群,一个请求具体被随机
- 不用Spring管理事务?让我们先来看一下不用spring管理事务时,各种框架是如何管理事务的使用JDBC来管理事务使用Hibernate来
- 一、swagge简介前后端分离:后端︰后端控制层,服务层,数据访问层【后端团队】前端:前端控制层,视图层【前端团队】前后端通过API进行交互
- 问题背景在最近的项目开发中遇到一个需求 需要对mysql做一些慢查询、大结果集等异常指标进行收集监控,从运维角度并没有对mysql进行统一的
- 1.分页类package org.zh.basic;/** * 页面类 * * @author keven&
- C#正则验证大全 Regex.IsMatch()正则表达式验证需要引入命名空间 using System.Text.RegularExpre
- 一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架
- 前言最常用的对字符串操作的类有三个,分别是String,StringBuilder,StringBuffer,下面将会详细的说说这三个类..
- 本文实例讲述了Java采用循环链表结构求解约瑟夫问题的方法。分享给大家供大家参考。具体分析如下:这是第一次java考试的试题,对于没看过链表
- 今天看到,java的NIO里面的SelectionKey,处理完key后,调用keyIterator.remove(); 对Iterator
- 首先来看效果: 一、实现原理在实现过程中,主要考虑整个界面由若干个字母组成的子母线条组成,这样的话把固定数量的字母封装成一个字母线条,而每个
- SSM框架是JavaWeb必学的框架,虽说基本的增删改查很简单,但是当面临一些特殊情况时,有时还是会显得手足无措,此篇用来记录一些特殊场景下
- IDEA配置阿里规范插件P3C进入idea -》File -》 Settings -》Plugins到搜索框中搜索:Alibaba Java
- 如何使用必应地图 WPF 控件框架使用.NET40;Visual Studio 2019;Bing Maps WPF 控件需要&n
- properties配置文件如下:human.name=Mr.Yuhuman.age=21human.gender=male如何把prope
- 一:想都不用想的,有图有真相,看着爽了,在看下面源码二:实例源码分析①:首先定义接口package com.demo.tools.view;
- 类和对象<上>面向对象一直以来都是面向过程编程比如C语言,直到七十年代面向过程编程在开发大型程序时表现出不足,计算机界提出了面向