📅  最后修改于: 2023-12-03 15:32:04.978000             🧑  作者: Mango
有时我们需要编写一个Java程序,以获取运行程序的操作系统的名称和版本。以下是几种不同的方法,可以让你轻松地实现这个任务。
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
如果你正在使用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
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程序都可以很轻松地获取操作系统的名称和版本号。根据不同的需求,选择合适的方法即可。