Java獲取當前操作系統的信息


主流有幾種方法。一種是用以下的函數
public static String getProperty(String key)

相關值的描寫敘述
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"));//獲取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(); } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM