【问题标题】:Eclipse not increasing VM heap size as specified in .iniEclipse 不增加 .ini 中指定的 VM 堆大小
【发布时间】:2016-03-19 12:43:02
【问题描述】:

谁能帮我解决这个问题。我只是无法让 VM 增加到超过 1.8GB 或出于某种原因。此实用程序在 Eclipse 中运行时返回 64 和 1883242496,但从命令行 (java.exe) 运行时返回正确的值。 VM 是 64 位,因此应该超过 1.8 GB。

 public static void main(String[] args) {
        System.out.println(System.getProperty("sun.arch.data.model"));
        System.out.println(java.lang.Runtime.getRuntime().maxMemory());
    }

Eclipse.ini 内容如下。几乎什么都试过了。

-startup    
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar

--launcher.library    
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M    
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk1.8.0_66\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms6144m
-Xmx6144m
-d64

提前致谢

【问题讨论】:

  • 这不是重复的,因为该线程中的这些答案都不适合我。这就是我开始研究的地方。下面的答案 2 我已经测试并有效。

标签: java eclipse


【解决方案1】:

你可以试试这个:

-startup
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
6144m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms6144m
-Xmx6144m
-XX:+UseParallelGC
-XX:PermSize=6144M
-XX:MaxPermSize=6144M
-d64

希望它会有所帮助。

【讨论】:

    【解决方案2】:

    即使将两者都设置为相同的堆大小 6144m

    -Dosgi.requiredJavaVersion=1.7 -Xmx6144m -Xmx6144m

    在 eclipse.ini 中并没有增加 64 位的堆大小,而是通过使用 windows 为 JVM 传递参数--> 首选项我们可以增加堆大小

    【讨论】:

      【解决方案3】:

      eclipse.ini 中的配置设置了 Eclipse 本身使用的内存,它不会更改在 Eclipse 中运行程序时使用的内存。

      您可以通过打开“运行 > 运行配置”并在“Java 应用程序”部分中选择您的程序并将您的参数添加到“VM 参数”来更改特定程序的设置。

      您还可以设置默认值,如另一个答案所示。

      【讨论】:

      • 使用了这个选项,效果很好,但只设置了 Xmx.设置 Xms 时遇到一些问题,其中一个项目无法运行。
      【解决方案4】:

      我最近在 Eclipse 程序中加载项目时遇到了问题。 该错误与垃圾收集 (GC) 有关。

      在网上搜索解决方案时,我注意到这是由于内存分配造成的。 在 Eclipse 中,您可能知道,ini 文件可用于分配分配给程序的最小和最大内存。

      -Xms  Initial memory size 
      -Xmx  maximum memory size
      

      –Xmx 的值更改为更高的值2048m 时,我希望程序可以毫无问题地加载所有项目。 但是,我可以看到同样的错误。

      当我进一步研究时,有一个系统变量_JAVA_OPTIONS 的值为-Xmx512M。这已经覆盖了 ini 文件中的值。

      反射:
      当程序不反映 ini 文件中的值时,还值得查看系统变量。

      【讨论】:

        猜你喜欢
        • 2013-01-01
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        • 2011-07-05
        • 1970-01-01
        • 2014-12-18
        • 2012-06-17
        相关资源
        最近更新 更多