java程序如何根据os决定执行哪个命令

时间:2010-10-23 21:30:53

标签: java

我必须制作一个程序,它将使用Windows的“ipconfig”和Linux的“ifconfig”打印网络设置,但我需要为这两个操作系统提供独特的实现。

4 个答案:

答案 0 :(得分:9)

您可以通过

获取操作系统的名称
System.getProperty("os.name")

请查看this page以获取示例代码。


如果您感兴趣的是本地主机的IP,那么有很多方法可以直接在Java中获取:


无法确定“show ip information”命令对于任意操作系统的用途。您必须手动硬编码每个操作系统名称的命令(如果是一个)。

答案 1 :(得分:5)

作为其他答案的补充,我将在Commons Lang中提及SystemUtils,它会公开各种常量,例如IS_OS_UNIXIS_OS_WINDOWS等。

答案 2 :(得分:3)

aioobe's solution

为基础
final String osname = System.getProperty("os.name").toLowerCase();
String processName;
if(osname.startsWith("win"))
    processName="ipconfig /some /parameter";
else
    processName="ifconfig -some -parameter";
Runtime.getRuntime().exec(processName);

答案 3 :(得分:3)

作为参考,这里是一个具体的example,它仅为特定操作系统设置属性:

if (System.getProperty("os.name").startsWith("Mac OS X")) {
    System.setProperty("apple.awt.graphics.UseQuartz", "true");
}