Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使runtime.exec()在Java中的多操作系统上工作?_Java_Runtime_Runtime.exec - Fatal编程技术网

如何使runtime.exec()在Java中的多操作系统上工作?

如何使runtime.exec()在Java中的多操作系统上工作?,java,runtime,runtime.exec,Java,Runtime,Runtime.exec,我在OSX上调用运行时执行,在命令之前添加“/bin/bash”、“-c”,例如: Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec(new String[] { "/bin/bash", "-c", cmd }); 我知道Windows和Linux是不同的。如何确保我的运行时命令在多操作系统上工作 谢谢。使用类似于: String osName = System.getProperty

我在OSX上调用运行时执行,在命令之前添加“/bin/bash”、“-c”,例如:

Runtime runtime = Runtime.getRuntime();  
Process process = runtime.exec(new String[] { "/bin/bash", "-c", cmd });  
我知道Windows和Linux是不同的。如何确保我的运行时命令在多操作系统上工作

谢谢。

使用类似于:

    String osName = System.getProperty("os.name");
    if(osName.startsWith("Windows")) {
        // windows code
    } else {
        if(osName.startsWith("Linux") {
             // linux code
        } else {
             // mac code
        }
    }

免责声明:这只是方向性的。仍有许多极端情况(如FreeBSD)需要测试以获得正确的行为。

您必须检查操作系统并有条件地执行命令。你到底想干什么?也许可以用一种更抽象的方式来做,而不依赖于操作系统。(如果您想运行复杂的脚本或其他东西,可能不会这样做。)