How can I get my motherboard's ID, using Java,

2019-07-10 02:58发布

问题:

How can I get my motherboard's ID, using Java, in Linux, Mac, and Solaris? I'd prefer a cross-platform solution.

I found a way that works in Windows:

String result = "";
    try {
    File file = File.createTempFile("realhowto",".vbs");
    file.deleteOnExit();
    FileWriter fw = new java.io.FileWriter(file);

    String vbs =
    "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
    + "Set colItems = objWMIService.ExecQuery _ \n"
    + " (\"Select * from Win32_BaseBoard\") \n"
    + "For Each objItem in colItems \n"
    + " Wscript.Echo objItem.SerialNumber \n"
    + " exit for ' do the first cpu only! \n"
    + "Next \n";

    fw.write(vbs);
    fw.close();
    Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
    BufferedReader input =
    new BufferedReader
    (new InputStreamReader(p.getInputStream()));
    String line;
    while ((line = input.readLine()) != null) {
    result += line;
    }
    input.close();
    }
    catch(Exception e){
    e.printStackTrace();
    }
    return result.trim();

That works perfectly in Windows, but I need something that will also work in Mac, Linux and Solaris.