EclipseでAntビルドを実行すると、次のエラーメッセージが表示され、Antビルドが失敗します。
エラーメッセージ: javac.exeコンパイラの実行エラー
ビルドが停止する行:
<javac destdir="${classes.home}" debug="on" fork="true" memoryinitialsize="512M" memorymaximumsize="1G">
<classpath refid="classpath"/>
<src path="${source.home}"/>
</javac>
誰も以前に同様の問題に直面したことがありますか?または誰かがここで何が間違っているか知っていますか?
システム情報:Eclipse Helio、JDK 1.5
私は同じ問題を抱えていましたが、EclipseではJava.homeはJDKではなくJREを参照していました。私はそれを変更し、ビルドは成功しました。以下を実行して、JDKに変更できます。
環境設定> Java>インストール済みJREの>追加...「JREタイプ」の場合、「標準VM」を選択>次へ>ディレクトリ:(JREの代わりに)JDKディレクトリを選択(私の場合:C :\ Program Files\Java\jdk1.6.0_16)、[OK]を押します。
これで、「インストールされたJRE」に戻りました。ここでもJDKを選択します。
以下の投稿は、解決策を見つけるのに役立ちました。 Java_HOMEが間違った場所を指している
上記の受け入れられた答えで問題が解決しない場合(私にとってはそうではありませんでした)、上記の受け入れられた答えで提案されているように、JREの代わりにJava.homeをJDKに更新した後、実行->外部ツール- >外部ツール設定->左側のメニューでbuild.xmlを選択-> JREタブを選択-> [JREを分離]ラジオボタンオプションのJDK(ドロップダウンから)を選択-> [実行]をクリックします。
これで問題が解決するはずです。
同じ問題が発生し、javacから属性フォークを削除すると、問題はなくなりました。
Javacの問題は、「javac.exe」がシステムPATHにないためである可能性があります。システムパスを編集し、JDKの/ binディレクトリを追加して、この問題を修正してください。
シェルまたはコマンドプロンプトを開き、「javac」と入力して、システムパスが正しく設定されているかどうかを確認します。
JREの代わりにJDKを指すようにEclipseを構成しても機能しませんでした。さらに調査して、ビルドプロセスの分岐を停止することでこの問題を解決しました。 build.xmlで、<javac>
タグからfork
属性を削除します。
私は同じ問題に直面しました、そして、ここに私のアドバイスがあります、多分それは誰かを助けるでしょう。
実際、メッセージError running javac.exe compiler
は、何かがうまくいかなかったことを意味します。問題は、正確に何ですか。 Antがfork="true"
フラグを使用してjavac
タスクを実行する場合、エラーの詳細は出力されません。私の場合、 here のように、verbose="true"
を追加した後でも印刷されませんでした。解決策は、add-verboseフラグをAntコマンドラインに追加することでした:
ant -verbose
この後、Antは完全なエラーメッセージの出力を開始するので、問題を修正できます。
Windows 7で環境変数を確認して、これを解決しました。Java_HOMEはC:\を指していることがわかりました。プログラムファイル(x86)\ Java\jdk1.6.0_31 C:\Program Files\ Java\jdk1.6.0_31。 これを読む の方法を知りたい場合
Eclipseでantを実行している場合は、[別のユーザーとして実行]-> [Antの2番目のオプション]をクリックし、JDKパスを選択して、ビルドを再度実行します。
Fork = "true"を削除し、そのコードを過ぎました。この問題を抱えている人にとって興味深いのは、その行で次の出力が得られることです。
'Since fork is false, ignoring memoryMaximumSize setting.'
上記のように、fork = "true"設定を維持する必要がある場合、memoryMaximumSizeに問題がある可能性があります。
受け入れられた答えは私にはうまくいきませんでした。ただし、Ant内を右クリックし、Javaランタイム環境(JRE)をJave Development Kit(JDK)に設定します。私のために働いた。
Abhi Rampalの答え は、Eclipseで問題を解決したのと同じ方法です。
実行->外部ツール->外部ツール設定->左メニューでbuild.xmlを選択-> JREタブを選択->別のJREオプションボタンオプションのJDK(ドロップダウンから)を選択->実行をクリックします。
Memorymaximumsize = "1G"をmemorymaximumsize = "512M"に変更してみてください。
私にとっては、WEB-INF/libディレクトリ内のバックアップライブラリでした。メインライブラリ内に複数のlibディレクトリがありました。また、クラスパスにそれらすべてが含まれていたため、javacコマンドが長すぎました。
それらのディレクトリを削除し、それは私のために働いた。
私はすべてを試しましたが、設定するまで何も機能しませんでした(fork = 'no'またはfork = 'false'をあなたの場合)
いくつかのメインメモリを解放してください。メモリを大量に消費するプログラムを終了し、可能であればメモリを大量に消費するプロセスを停止します。
Windowsビルドマシンでも同じ問題が発生しましたが、ローカル(unixマシン)ではすべてがうまくいきました。 Fork = trueも役に立たなかった。ビルドサーバー上でもProcess forkが失敗した例外が発生した。
研究
いくつかの調査の後、クラスパスが長すぎるかもしれないという手がかりがありました。 Windowsマシンでローカルの正確なフォルダー構造を再作成したところ、同じ問題が発生し、クラスパスが長すぎることがわかりました(詳細については-vと-dを使用しました)。これがエラーの原因でした。 。
ソリューション
解決策は、すべてのライブラリを含むマニフェストのみを含むjarを作成することでした。詳細については、 this answer を参照してください
私はこのような問題を修正しました:
My Javaホームフォルダーのパスが間違っていました。C:\Program Files (x86)\Java\jdk1.5.0_15
であったはずですが、代わりにC:\Program Files (x86)\Java\jdk1.5.0_15\bin
でした。