STS / Eclipse没有通过vmargs来运行配置

时间:2019-05-07 08:49:25

标签: java eclipse

我正在使用ANTLR4解析文件。它发出内存不足异常。因此,我增加了sts.inieclipse.ini中的堆内存。下面是我的sts.ini文件。

-startup
plugins/org.eclipse.equinox.launcher_1.5.200.v20180922-1751.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.900.v20180922-1751
-product
org.springsource.sts.ide
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.8
--add-modules=ALL-SYSTEM
-XX:MaxPermSize=2048m
-Dosgi.module.lock.timeout=10
-Dorg.eclipse.swt.browser.IEVersion=10001
-Xmx2048m
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Xms512m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+UseFastAccessorMethods

堆内存增加。我可以在eclipse / sts的堆状态栏中看到。但是程序仍然失败。

在运行配置中传递-Xmx1024m时,程序成功。 eclipse / sts没有通过这些vmargs运行配置的任何原因是什么?

更新:我使用Runtime.getRuntime().maxMemory();验证了内存,未运行配置显示为512 MB,运行配置显示为2 GB。

我在运行配置中没有其他vmargs。


STS版本:

版本:3.9.7.RELEASE,平台:Eclipse 2018-12(4.10.0)

1 个答案:

答案 0 :(得分:2)

eclipse.ini / sts.ini文件中的设置仅由Eclipse / STS使用-不会传递给您在Eclipse中运行的程序。

每个程序的设置都是单独的,并在程序的“运行”>“运行配置”中进行配置。

您可以使用“编辑...”按钮并编辑“默认VM参数”字段,在“ Java>已安装JRE”页面上的“首选项”中为特定JRE配置默认VM参数。