Java STS/Eclipse未传递vmargs以运行配置

Java STS/Eclipse未传递vmargs以运行配置,java,eclipse,Java,Eclipse,我正在使用ANTLR4解析一个文件。它出现内存不足异常。所以我在sts.ini和eclipse.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 -prod

我正在使用ANTLR4解析一个文件。它出现内存不足异常。所以我在
sts.ini
eclipse.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没有将这些vmarg传递到运行配置的原因是什么

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

我在运行配置中没有任何其他vmarg


STS版本:


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

Eclipse.ini/sts.ini文件中的设置仅由Eclipse/sts使用-它们不会传递给从Eclipse中运行的程序

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


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

这是否意味着
*中的堆大小。ini
文件用于编译、重构等ide任务?Eclipse只是一个(非常复杂的)文件Java程序,所以设置与其他Java程序一样使用,所以,是的,所有这些IDE任务。当您运行一个程序时,一个全新的JRE将使用它自己的设置启动。