在不知道OS的情况下从java启动命令行

时间:2013-01-18 06:43:45

标签: java

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

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

2 个答案:

答案 0 :(得分:2)

跨平台没有直接或统一的方式。你可以实现的一种方法是

  1. 确定操作系统(使用System.getProperty("os.name"))。
  2. 然后根据操作系统执行操作系统特定命令。
  3. 例如:(摘自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);
    
        }
    

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

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

答案 1 :(得分:0)

命令:

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

适用于所有台式机/笔记本电脑操作系统平台。