2012-03-12 17 views
6

私はこの提案に基づいて、私のJavaクラスからMavenを実行しようとしています:WindowsのJavaコードからMavenを実行していますか?

How to run maven from java?

Runtime.getRuntime().exec("mvn"); 

が、私は得る:

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 
... 

どのような提案ですか?

+0

http://stackoverflow.com/を見て、Mavenの埋め込みを使用しますa/19904341/516167 – MariuszS

答えて

10

試してみてください。

Runtime.getRuntime().exec("cmd \c mvn"); 

編集:モミ質問に対して ...

はい。参照:Process#getInputStream。基本的には、作成中のサブプロセスからの出力を消費する必要があります。私もこの記事のような

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

+2

私は以下を実行する必要があります:Runtime.getRuntime()。exec( "cmd/C mvn");私のコンソールには何も出力されていません。何とかそれをパイプする必要がありますか? – u123

+0

これは次の場合に生成されます。BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); 文字列= ""; while((line = in.readLine())!= null){ System.out.println(line); – ses

1

エラー2は、実行ファイルがJRE環境によって見つからないことを意味します。これは、PATH環境変数にMavenバイナリディレクトリが含まれていないことを意味します。ここ

2の選択肢:

  1. は、Mavenのbinディレクトリが変数PATH環境
  2. 使用MVN命令への絶対パスであることを確認します。

また、許可が拒否されている可能性もありますが、その可能性は低いです。

+2

システムPATHにC:\ User \ username \ apache-maven-3.0.4 \ binを追加しましたが、同じエラーが表示されます。 –

+0

ideとおそらくコンピュータを再起動してみてください。私はGuillameからの指示にも従いました。またPATHにmavenを追加した後も同じ問題が発生しました。しかし、いったんコンピュータを再起動すると、MavenはPATH上に見つかり、Eclipseはmavenコマンドを実行することができました。これが役立つといいと思います... – liltitus27

2

あなたはmvn.batを表示し、実際に実行されているのjavaコマンドエコーとそれを直接実行することができます。 mvn.batで

:私のマシンで実行依存で

%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

:ツリーは次のとおりです。

良い

"java -classpath \"C:\dev\tools\apache-maven-3.1.1\boot\plexus-classworlds-2.5.1.jar\" -Dclassworlds.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 dependency:tree"

関連する問題