2013-01-18 14 views
1

有没有一种方法可以在不知道OS的情况下从java启动命令行?例如,该方法将打开Linux操作系统的终端shell并打开Windows的命令行。从java启动命令行而不知道OS

我知道(从看前面的问题),我可以检查操作系统,然后打开适当的命令行,但是有没有办法从操作系统不可知的java方法打开命令行?

+0

您可以在系统上设置环境变量,然后使用它来打开commandLine。 – BevynQ

回答

2

在整个平台上没有直接或统一的方法。您可以完成的一种方法是:

  1. 确定操作系统(使用System.getProperty("os.name"))。
  2. 然后根据操作系统,执行特定于操作系统的命令。

例如:(段从here拍摄)

  String OS = System.getProperty("os.name").toLowerCase(); 

     if (isWindows(OS)) { 
      String path = "c:\\"; 
      Runtime.getRuntime().exec(new String[] { "cmd.exe", "/C", "\"start; cd "+path+"\"" });; 
     } else if (isMac(OS)) { 
      //Open Mac Prompt 
     } else if (isUnix(OS)) { 
      //Open UnixPrompt 
     } else if (isSolaris(OS)) { 
      //Open Solaris Prompt 
     } else { 
      System.out.println("Your OS is not support!!"); 
     } 

public static boolean isWindows(String OS) { 

     return (OS.indexOf("win") >= 0); 

    } 

    public static boolean isMac(String OS) { 

     return (OS.indexOf("mac") >= 0); 

    } 

    public static boolean isUnix(String OS) { 

     return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0); 

    } 

    public static boolean isSolaris(String OS) { 

     return (OS.indexOf("sunos") >= 0); 

    } 

请找相关的代码为不同的操作系统

注:它只是一个代码段。它不会按原样编译。

0

命令:

Runtime.getRuntime().exec("command") 

将在所有台式机/笔记本电脑的OS平台的工作。

+1

“命令”是什么意思?它是一个占位符还是“命令”实际上是一个命令? – TechSpellBound

0

一旦Java安装在任何操作系统上,你所做的就是用它来创建你自己的程序。 Windows中的命令行或Linux中的Terminal是操作系统的属性。

因此,即使Java中有一个API直接打开终端,该方法也会在内部检查操作系统。

相关问题