java - STS/Eclipse 未传递 vmargs 来运行配置

标签 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
-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。

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


STS版本:

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

最佳答案

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

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

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

关于java - STS/Eclipse 未传递 vmargs 来运行配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56018809/

相关文章:

java - 有没有办法用 slick2d 渲染平铺图像层?

java - 尝试使用 JDBC 测试 MySQL 数据库中是否存在特定表时出错

java - Mapreduce Mapper说明

java - 无法转换到服务

Java: "9"出现在我的运行中是 Eclipse 错误吗?

eclipse - 我可以通过 pom.xml 配置 m2eclipse 吗?

java - 无法通过 servlet 连接 mysql;访问被拒绝

java - Spark 中 HashMap 的 Kryo 反序列化失败

java - 正确的编码方式

eclipse - 源代码管理应跟踪 eclipse 工作区的哪些信息(文件)