在Windows中从Java代码运行Maven?
基于以下建议,我尝试从java类运行maven: 但我得到:在Windows中从Java代码运行Maven?,java,windows,maven,cmd,Java,Windows,Maven,Cmd,基于以下建议,我尝试从java类运行maven: 但我得到: java.io.IOException: Cannot run program "mvn": CreateProcess error=2, The system cannot find the file specified mvn在我的路径上,我可以从cmd运行它: C:\Users\m>mvn -v Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) Maven
java.io.IOException: Cannot run program "mvn": CreateProcess error=2, The system cannot find the file specified
mvn在我的路径上,我可以从cmd运行它:
C:\Users\m>mvn -v
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Maven home: C:\apache-maven-3.0.3\bin\..
Java version: 1.6.0_20, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_20\jre
...
有什么建议吗?错误2表示JRE环境找不到可执行文件。这意味着PATH环境变量不包含Maven二进制目录 这里有两种选择:
Runtime.getRuntime().exec("cmd \c mvn");
编辑:
在回答第一个问题时
对。请参阅:。基本上,您需要使用正在创建的子进程的输出
我也喜欢这篇文章:您可以查看mvn.bat并回显实际执行的java命令,然后直接运行它 在mvn.bat中:
%MAVEN\u JAVA\u EXE%%MAVEN\u OPTS%%classpath%CLASSWORLDS\u JAR%“-Dclassworlds.conf=%M2\u HOME%\bin\M2.conf”“-Dmaven.HOME=%M2\u HOME%%CLASSWORLDS\u启动器%%MAVEN\u CMD\u LINE\u ARGS%
在我的机器中,执行dependency:树是:
“java-classpath\'C:\dev\tools\apache-maven-3.1.1\boot\plexus-classworlds-2.5.1.jar\'-dclasswords.conf=C:\dev\tools\apache-maven-3.1.1\bin\m2.conf-Dmaven.home=\'C:\dev\tools\apache-maven-3.1.1\'org.codehaus.plexus.classworlds.launcher.launcher.launcher依赖关系:树”
用户“mvn.cmd”而不是mvn或mvn.bat。它很好用 我需要做:Runtime.getRuntime().exec(“cmd/cmvn”);但我在控制台中没有得到任何输出,是否有必要以某种方式将其输出?它会生成if:BufferedReader in=new BufferedReader(new InputStreamReader(p.getInputStream());字符串行=”;而((line=in.readLine())!=null){System.out.println(line);我在我的系统路径中添加了C:\User\username\apache-maven-3.0.4\bin,但仍然会出现相同的错误。请尝试重新启动ide,可能还有您的计算机。我也遵循了Guillame的说明,在我将maven添加到路径后也遇到了相同的问题。但是,一旦我重新启动计算机,在路径上发现了maven,Eclipse was能够运行maven命令。希望这有助于…更好地使用maven嵌入程序,请参阅
Runtime.getRuntime().exec("cmd \c mvn");