0

私のアプリケーションを介してJavaソースコードをコンパイルして実行するためのプロジェクトに取り組んでいます。ここで立ち往生しています ここで私の環境を説明します.. java 1.6.0_35 32bitそして、 このコードを使用したときにeclipse indigoオペレーティングシステムを使用していますwindows 64 bit

String command = "javac "+file.getAbsolutePath();
System.out.println(command);
Process p = Runtime.getRuntime().exec(command);`

この例外が発生しました..エラー表示ファイルが存在しないと思いますが、ここにあり、コンパイルするコマンドラインを介して実行するとチェックしましたが、Eclipseはこのエラーを表示します

java.io.IOException: Cannot run program "javac": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)`

誰でもこれを修正できますか、私はたくさん試しました..

4

3 に答える 3

3

コマンドラインを使用する必要はありませんjavac。プログラムでアクセスできます。

JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
javac.run(null, null, null, arguments);

見る

ポータブル(他のシステムで動作)であり、パスとコマンドラインの問題を回避します。

于 2012-10-02T07:32:51.680 に答える
2

Java 6 コンパイラ APIを使用できます。また、このリンクが役立つ場合があります..

于 2012-10-02T07:35:39.523 に答える
1

あなたの問題は、コンパイルしたいファイルが見つからないということではなく、 javac コマンド自体が見つからないということです。最終的に「PATH=/path/to/java/dir」を exec に渡して、ランタイムが javac 実行可能ファイルを見つけられるようにします。

参照: Runtime.exec(コマンド、環境、ディレクトリ)

于 2012-10-02T07:36:16.033 に答える