运行Java代码时Eclipse中的StackOverflow错误



最近我遇到了一些内存问题,几天来我一直在努力解决这些问题,但不幸的是没有任何运气!

我正在运行Mac OS X 10.6.8/8GB RAM(应该没有任何分配问题!)

Eclipse版本是Helios。

java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-10M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

我的Java异常:

Exception in thread "main" java.lang.StackOverflowError

还有我的eclipse.ini:

-startup
../../../plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.0.v20100503
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1G
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Xms256m
-Xmx512m
-XX:PermSize=1024m
-XX:MaxPermSize=1024M
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts

我还尝试在Eclipse中的VM参数中添加"-Xmx1536m",但没有成功!

提前谢谢。

StackOverflowError是一个常见的错误,当您有一个无限递归调用时,例如:

void method(int a) {
    method(a);
}

这种调用将导致StackOverflowError。

因此,如果您有这种类型的无限递归调用,或者可能有一个无休止的循环,您应该检查您的代码。

在Eclipse中右键点击项目,遵循以下步骤:

  • Run
  • 运行配置
  • 单击JRE选项卡
  • 在VM arguments部分写下以下参数-Xs2g

默认情况下,堆栈内存大小为512 KB。我们可以根据需要增加。

  • 单击应用并运行项目

如果有任何查询,请在注释部分恢复注释。

最新更新