📜  Java程序以确定操作系统的名称和版本(1)

📅  最后修改于: 2023-12-03 15:32:04.978000             🧑  作者: Mango

Java程序以确定操作系统的名称和版本

有时我们需要编写一个Java程序,以获取运行程序的操作系统的名称和版本。以下是几种不同的方法,可以让你轻松地实现这个任务。

方法一:使用System.getProperty()

Java中的System.getProperty()方法可以获取系统的一些相关信息,包括操作系统名称、版本号等。下面是一个使用该方法的简单示例程序:

public class GetOSInfo {
    public static void main(String[] args) {
        System.out.println("OS Name: " + System.getProperty("os.name"));
        System.out.println("OS Version: " + System.getProperty("os.version"));
    }
}

运行这个程序,你将获得类似以下的输出:

OS Name: Windows 10
OS Version: 10.0
方法二:使用SystemUtils类

如果你正在使用Apache Commons Lang库,SystemUtils类可以提供一些更详细的系统信息。这个库可以从 Apache官网 下载,然后将commons-lang.jar文件添加到你的项目中。以下是一个示例程序:

import org.apache.commons.lang3.SystemUtils;

public class GetOSInfo {
    public static void main(String[] args) {
        System.out.println("OS Name: " + SystemUtils.OS_NAME);
        System.out.println("OS Version: " + SystemUtils.OS_VERSION);
        System.out.println("Java Version: " + SystemUtils.JAVA_VERSION);
        System.out.println("Java Home: " + SystemUtils.JAVA_HOME);
    }
}

这个示例程序将输出更多的系统信息,类似以下内容:

OS Name: Windows 10
OS Version: 10.0
Java Version: 1.8.0_211
Java Home: C:\Program Files\Java\jdk1.8.0_211\jre
方法三:使用Runtime类

Java中的Runtime类提供了很多方法可以获取系统信息。以下是一个使用该类的示例程序:

public class GetOSInfo {
    public static void main(String[] args) {
        String os = System.getProperty("os.name").toLowerCase();
        Runtime runtime = Runtime.getRuntime();
        if (os.contains("win")) {
            try {
                Process process = runtime.exec("systeminfo");
                Scanner sc = new Scanner(process.getInputStream());
                while (sc.hasNextLine()) {
                    String line = sc.nextLine();
                    if (line.startsWith("OS Name")) {
                        System.out.println(line.substring(10));
                    } else if (line.startsWith("OS Version")) {
                        System.out.println(line.substring(13));
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else if (os.contains("mac")) {
            System.out.println("OS Name: Mac OS X");
            try {
                Process process = runtime.exec("sw_vers");
                Scanner sc = new Scanner(process.getInputStream());
                while (sc.hasNextLine()) {
                    String line = sc.nextLine();
                    if (line.startsWith("ProductVersion")) {
                        System.out.println("OS Version: " + line.substring(15));
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("Unsupported operating system.");
        }
    }
}

这个示例程序可以返回更详细的操作系统信息,包括Windows的版本号和Mac的名称和版本号:

OS Name: Windows 10 Enterprise
OS Version: 10.0.17763 N/A Build 17763

无论你选择哪种方法,这些Java程序都可以很轻松地获取操作系统的名称和版本号。根据不同的需求,选择合适的方法即可。