我必须制作一个程序,它将使用Windows的“ipconfig”和Linux的“ifconfig”打印网络设置,但我需要为这两个操作系统提供独特的实现。
答案 0 :(得分:9)
您可以通过
获取操作系统的名称System.getProperty("os.name")
请查看this page以获取示例代码。
如果您感兴趣的是本地主机的IP,那么有很多方法可以直接在Java中获取:
无法确定“show ip information”命令对于任意操作系统的用途。您必须手动硬编码每个操作系统名称的命令(如果是一个)。
答案 1 :(得分:5)
作为其他答案的补充,我将在Commons Lang中提及SystemUtils
,它会公开各种常量,例如IS_OS_UNIX
,IS_OS_WINDOWS
等。
答案 2 :(得分:3)
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");
}