web-dev-qa-db-ja.com

EclipseでAntを使用しているときにjavac.exeコンパイラメッセージを実行中にエラーが発生する

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

29
Veera

私は同じ問題を抱えていましたが、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が間違った場所を指している

56
spbala

上記の受け入れられた答えで問題が解決しない場合(私にとってはそうではありませんでした)、上記の受け入れられた答えで提案されているように、JREの代わりにJava.homeをJDKに更新した後、実行->外部ツール- >外部ツール設定->左側のメニューでbuild.xmlを選択-> JREタブを選択-> [JREを分離]ラジオボタンオプションのJDK(ドロップダウンから)を選択-> [実行]をクリックします。

これで問題が解決するはずです。

44
Abhi Rampal

同じ問題が発生し、javacから属性フォークを削除すると、問題はなくなりました。

18
Avinash

Javacの問題は、「javac.exe」がシステムPATHにないためである可能性があります。システムパスを編集し、JDKの/ binディレクトリを追加して、この問題を修正してください。

シェルまたはコマンドプロンプトを開き、「javac」と入力して、システムパスが正しく設定されているかどうかを確認します。

6
Impiastro

JREの代わりにJDKを指すようにEclipseを構成しても機能しませんでした。さらに調査して、ビルドプロセスの分岐を停止することでこの問題を解決しました。 build.xmlで、<javac>タグからfork属性を削除します。

4
pall

私は同じ問題に直面しました、そして、ここに私のアドバイスがあります、多分それは誰かを助けるでしょう。
実際、メッセージError running javac.exe compilerは、何かがうまくいかなかったことを意味します。問題は、正確に何ですか。 Antがfork="true"フラグを使用してjavacタスクを実行する場合、エラーの詳細は出力されません。私の場合、 here のように、verbose="true"を追加した後でも印刷されませんでした。解決策は、add-verboseフラグをAntコマンドラインに追加することでした

ant -verbose

この後、Antは完全なエラーメッセージの出力を開始するので、問題を修正できます。

3
Vladimir

Windows 7で環境変数を確認して、これを解決しました。Java_HOMEはC:\を指していることがわかりました。プログラムファイル(x86)\ Java\jdk1.6.0_31 C:\Program Files\ Java\jdk1.6.0_31。 これを読む の方法を知りたい場合

2
Uriel Frankel

Eclipseでantを実行している場合は、[別のユーザーとして実行]-> [Antの2番目のオプション]をクリックし、JDKパスを選択して、ビルドを再度実行します。

1
Kannan

Fork = "true"を削除し、そのコードを過ぎました。この問題を抱えている人にとって興味深いのは、その行で次の出力が得られることです。

'Since fork is false, ignoring memoryMaximumSize setting.'

上記のように、fork = "true"設定を維持する必要がある場合、memoryMaximumSizeに問題がある可能性があります。

0

受け入れられた答えは私にはうまくいきませんでした。ただし、Ant内を右クリックし、Javaランタイム環境(JRE)Jave Development Kit(JDK)に設定します。私のために働いた。

Abhi Rampalの答え は、Eclipseで問題を解決したのと同じ方法です。

実行->外部ツール->外部ツール設定->左メニューでbuild.xmlを選択-> JREタブを選択->別のJREオプションボタンオプションのJDK(ドロップダウンから)を選択->実行をクリックします。

0
kdo53

Memorymaximumsize = "1G"をmemorymaximumsize = "512M"に変更してみてください。

0
fuwaneko

私にとっては、WEB-INF/libディレクトリ内のバックアップライブラリでした。メインライブラリ内に複数のlibディレクトリがありました。また、クラスパスにそれらすべてが含まれていたため、javacコマンドが長すぎました。

それらのディレクトリを削除し、それは私のために働いた。

私はすべてを試しましたが、設定するまで何も機能しませんでした(fork = 'no'またはfork = 'false'をあなたの場合)

0
Ahmed Hamdy

いくつかのメインメモリを解放してください。メモリを大量に消費するプログラムを終了し、可能であればメモリを大量に消費するプロセスを停止します。

0
knb

Windowsビルドマシンでも同じ問題が発生しましたが、ローカル(unixマシン)ではすべてがうまくいきました。 Fork = trueも役に立たなかった。ビルドサーバー上でもProcess forkが失敗した例外が発生した。

研究

いくつかの調査の後、クラスパスが長すぎるかもしれないという手がかりがありました。 Windowsマシンでローカルの正確なフォルダー構造を再作成したところ、同じ問題が発生し、クラスパスが長すぎることがわかりました(詳細については-vと-dを使用しました)。これがエラーの原因でした。 。

ソリューション

解決策は、すべてのライブラリを含むマニフェストのみを含むjarを作成することでした。詳細については、 this answer を参照してください

0
Joker

私はこのような問題を修正しました:

My Javaホームフォルダーのパスが間違っていました。C:\Program Files (x86)\Java\jdk1.5.0_15であったはずですが、代わりにC:\Program Files (x86)\Java\jdk1.5.0_15\binでした。

0
Salim