gpt4 book ai didi

java - 无论底层操作系统如何,都从 Java 执行进程

转载 作者:行者123 更新时间:2023-11-29 05:38:20 25 4
gpt4 key购买 nike

您能告诉我一种从 Java 执行进程而不管底层操作系统如何的方法吗?例如。

Process p = Runtime.getRuntime().exec("cmd /c mvn clean install");

上面一行在 Windows 环境中执行 Maven,但我如何在任何操作系统中运行上面的命令?

如果我不在开始时添加 "cmd/c" 那么我将无法在 windows 环境中运行并且错误显示 cannot find mvn.bat 虽然maven home 设置正确。

最佳答案

您可以检查您的操作系统类型,然后执行命令行语句。

为了检查操作系统类型,您需要检索 os.name 系统属性的值:

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

然后使用简单的 if/else 语句,您可以根据操作系统的类型执行命令行语句。

if (isUnix()) {
String statement = new String[] { "/bin/bash", "-c", "mvn clean install" };
Process p = Runtime.getRuntime().exec(statement);
else if (isWindows()) {
Process p = Runtime.getRuntime().exec("cmd /c mvn clean install");
}

...

检查操作系统类型的辅助方法:

public boolean isUnix() {
return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 );
}

public boolean isWindows() {
return (OS.indexOf("win") >= 0);
}

更多信息你可以找到here .

关于java - 无论底层操作系统如何,都从 Java 执行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com