java获得当前系统信息和服务器信息

Java 获取系统信息

可以获取一些基本的电脑信息和服务器信息,还有更多的信息没有写进下面的方法:

import java.net.InetAddress;  
import java.net.NetworkInterface;  
import java.util.Date;  
import java.util.Formatter;  
import java.util.Locale;  
import java.util.Properties;  
  
import javax.servlet.http.HttpServletRequest;  
  
public class SystemInfo {  
    /**系统名*/  
    private String os_name;  
    /**系统架构*/  
    private String os_arch ;  
    /**系统版本号*/  
    private String os_version ;  
    /**系统IP*/  
    private String os_ip ;  
    /**系统MAC地址*/  
    private String os_mac;  
    /**系统时间*/  
    private Date os_date;  
    /**系统CPU个数*/  
    private Integer os_cpus ;  
    /**系统用户名*/  
    private String os_user_name;  
    /**用户的当前工作目录*/  
    private String os_user_dir;  
    /**用户的主目录*/  
    private String os_user_home;  
      
    /**Java的运行环境版本*/  
    private String java_version ;  
    /**java默认的临时文件路径*/  
    private String java_io_tmpdir;  
      
    /**java 平台*/  
    private String sun_desktop ;  
      
    /**文件分隔符  在 unix 系统中是"/"*/  
    private String file_separator;  
    /**路径分隔符  在 unix 系统中是":"*/  
    private String path_separator;  
    /**行分隔符   在 unix 系统中是"/n"*/  
    private String line_separator;  
      
    /**服务context**/  
    private String server_context ;  
    /**服务器名*/  
    private String server_name;  
    /**服务器端口*/  
    private Integer server_port;  
    /**服务器地址*/  
    private String server_addr;  
    /**获得客户端电脑的名字,若失败,则返回客户端电脑的ip地址*/  
    private String server_host;  
    /**服务协议*/  
    private String server_protocol;  
      
    public static SystemInfo SYSTEMINFO;  
      
    public static SystemInfo getInstance(){  
        if(SYSTEMINFO == null){  
            SYSTEMINFO = new SystemInfo();  
        }  
        return SYSTEMINFO;  
    }  
      
      
    public static SystemInfo getInstance(HttpServletRequest request){  
        if(SYSTEMINFO == null){  
            SYSTEMINFO = new SystemInfo(request);  
        }  
        else {  
            SYSTEMINFO.ServerInfo(request);  
        }  
        return SYSTEMINFO;  
    }  
      
    private SystemInfo() {  
        super();  
        init();  
    }  
      
    private SystemInfo(HttpServletRequest request) {  
        super();  
        init();  
        /** 
         * 额外信息 
         */  
        ServerInfo(request);  
    }  
      
    /** 
     * 输出信息 
     */  
    public void PrintInfo(){  
        Properties props=System.getProperties();  
        System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));   
        System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));   
        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"));  
    }  
      
    /** 
     * 初始化基本属性 
     */  
    private void init(){  
        Properties props=System.getProperties();  
          
        this.java_version = props.getProperty("java.version");  
        this.java_io_tmpdir = props.getProperty("java.io.tmpdir");  
        this.os_name = props.getProperty("os.name");  
        this.os_arch = props.getProperty("os.arch");  
        this.os_version = props.getProperty("os.version");  
        this.file_separator = props.getProperty("file.separator");  
        this.path_separator = props.getProperty("path.separator");  
        this.line_separator = props.getProperty("line.separator");  
          
        this.os_user_name = props.getProperty("user.name");  
        this.os_user_home = props.getProperty("user.home");  
        this.os_user_dir = props.getProperty("user.dir");  
          
        this.sun_desktop = props.getProperty("sun.desktop");  
          
        this.os_date = new Date();  
        this.os_cpus = Runtime.getRuntime().availableProcessors();  
          
        try {  
            ipMac();  
        } catch (Exception e) {  
            this.os_ip = "";  
            this.os_mac = "";  
        }  
    }  
      
    /** 
     * 获取ip和mac地址 
     * @throws Exception 
     */  
    @SuppressWarnings("resource")  
    private void ipMac() throws Exception{  
        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();  
  
        }  
        SystemInfo.this.os_ip = sIP;  
        SystemInfo.this.os_mac = sMAC;  
    }  
      
    /** 
     * 获取服务器信息 
     * @param request 
     */  
    public void ServerInfo(HttpServletRequest request){  
        this.server_name = request.getServerName();  
        this.server_port = request.getServerPort();  
        this.server_addr = request.getRemoteAddr();  
        this.server_host = request.getRemoteHost();  
        this.server_protocol = request.getProtocol();  
        this.server_context = request.getContextPath();  
    } 


参考:

[java]  view plain copy
  1. Properties p = System.getProperties();// 获取当前的系统属性  
  2.         p.list(System.out);// 将属性列表输出  
  3.           
  4.         System.out.println("操作系统:"+p.getProperty("sun.desktop"));  
  5.         System.out.print("CPU个数:");// Runtime.getRuntime()获取当前运行时的实例  
  6.         System.out.println(Runtime.getRuntime().availableProcessors());// availableProcessors()获取当前电脑CPU数量  
  7.         System.out.print("虚拟机内存总量:");  
  8.         System.out.println(Runtime.getRuntime().totalMemory());// totalMemory()获取java虚拟机中的内存总量  
  9.         System.out.print("虚拟机空闲内存量:");  
  10.         System.out.println(Runtime.getRuntime().freeMemory());// freeMemory()获取java虚拟机中的空闲内存量  
  11.         System.out.print("虚拟机使用最大内存量:");  
  12.         System.out.println(Runtime.getRuntime().maxMemory());// maxMemory()获取java虚拟机试图使用的最大内存量  
Java获取当前屏幕分辨率:
Toolkit tl=Toolkit.getDefaultToolkit();
Dimension screenSize=tl.getScreenSize();

System.out.println("当前屏幕分辨率为"+(int)screenSize.getWidth()+"*"+(int)screenSize.getHeight());

Java获得当前系统内存情况的代码如下:

 OperatingSystemMXBean osmb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
         System.out.println("系统物理内存总计:" + osmb.getTotalPhysicalMemorySize() / 1024/1024 + "MB"); 
         System.out.println("系统物理可用内存总计:" + osmb.getFreePhysicalMemorySize() / 1024/1024 + "MB");




待续.....
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值