tomcat无法使用processbuilder

时间:2015-09-29 07:04:35

标签: java maven tomcat

在我的项目中,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中是否存在某种配置,不允许它运行外部进程?可以改变吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

出于便携性原因,您应该看到以下问题:How to run maven from java?

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