gpt4 book ai didi

java - tomcat无法使用processbuilder启动外部进程

转载 作者:行者123 更新时间:2023-11-28 23:29:13 26 4
gpt4 key购买 nike

在我的项目中,Tomcat 正在部署一个 WAR 文件。 WAR 文件正试图在另一个项目上运行 maven:

List<String> args = new ArrayList<String>();
args.add("mvn");
for (String goal : goals) {
args.add(goal);
//Here, goals is { "clean", "compile", "test", "dependency:copy-dependencies" }
}

ProcessBuilder processBuilder = new ProcessBuilder(args).directory(workingDir);
processBuilder.redirectErrorStream();
Process process = processBuilder.start();

但是,tomcat 无法运行 maven 并给出此错误:

java.io.IOException: Cannot run program "mvn" (in directory "C:/..."): CreateProcess error=2, The system cannot find the file specified

我是 Tomcat 和 Maven 的新手,但我很确定我已将 JAVA_HOME、CATALINA_HOME、MAVEN_HOME 都正确设置到它们的 bin 文件夹中,并且也已添加到 PATH 中。我没有使用任何 IDE,只使用 cmd 和浏览器。

Tomcat 中是否有某种配置不允许它运行外部进程?可以改变吗?

感谢您的帮助!

最佳答案

我认为 mvn 可能不是可以运行的命令,您的进程应该是 cmd\c mvn ,它实际上告诉 Java 启动命令终端并指示命令终端运行maven。

出于可移植性原因,您应该看到这个问题:How to run maven from java?

通过使用可移植的 API,您可以获得平台独立性并省去笨重的子流程处理。

关于java - tomcat无法使用processbuilder启动外部进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837692/

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