• 締切済み

javacでStackOverflowError

[現象] antを実行すると、StackOverflowErrorが出ます。 eclipseから実行しても、コマンドラインから実行しても同様です。 eclipseで‘プロジェクトのビルド’を実行すると、問題なくコンパイルできます。 コンパイル時のメモリ割り当て値である memoryMaximuSizeを小さくすると、 OutOfMemoryErrorがでます。 反対に大きくすると、 Could not reserve enough space for object heap のエラーが出ます。 どなたか、解決方法をご教示ください。 よろしくお願い致します。 [環境] eclipse3.1.1、j2dk-1.4.2_07、Ant1.6.2 Memory: 1.0GB、PenM: 2.0GHz [参考]build.xml -------------------------------------------------- <target name="compile" depends="prepare,resources"> <javac srcdir="src" destdir="classes" fork="true" memoryInitialSize="512m" memoryMaximumSize="1024m"> <classpath refid="compile.classpath" /> </javac> </target> --------------------------------------------------

みんなの回答

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.1

targetが無限に再帰呼び出しになったりしてませんか? そのあたりを見直されてみてはいかがでしょうか。 --- build.xmlの引用は"compile"というtargetしか書かれてませんが、 他のtargetがどうなっているか(少なくとも"preapare"と"resources"には dependsが指定されてますし)、build.xml全体と、anto起動時に 指定しているtarget(defaultかもしれませんが)などの情報がないと なんとも言えないところですが…。

mranderson
質問者

お礼

ご回答ありがとうございます。 コンパイル時にheap領域が足りなくなるほどの 長大なプログラムをコンパイルしているわけでは ありませんので、osumitanさまのご賢察のとおり、 無限ループ・再帰が発生している ものと思われます。 解決はしていないのですが、参考になりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A