如何使runtime.exec()在Java中的多操作系统上工作?
我在OSX上调用运行时执行,在命令之前添加“/bin/bash”、“-c”,例如:如何使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
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)需要测试以获得正确的行为。您必须检查操作系统并有条件地执行命令。你到底想干什么?也许可以用一种更抽象的方式来做,而不依赖于操作系统。(如果您想运行复杂的脚本或其他东西,可能不会这样做。)