有人可以帮我解决这个问题。我只是无法让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
提前致谢
答案 0 :(得分:2)
eclipse.ini
中的配置设置了Eclipse本身使用的内存,它不会改变从Eclipse中运行程序时使用的内存。
您可以通过打开'运行>更改特定程序的设置运行配置'并在“Java应用程序”中选择您的程序。部分并将您的参数添加到' VM参数'。
您也可以设置默认值,如另一个答案所示。
答案 1 :(得分:1)
即使将两者都设置为相同的堆大小6144m
-Dosgi.requiredJavaVersion = 1.7 -Xmx6144m -Xmx6144m
eclipse.ini中的不会增加64坐标的堆大小,而是通过使用windows传递JVM参数 - >我们可以增加堆大小
答案 2 :(得分:0)
你可以试试这个:
-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
希望它会有所帮助。
答案 3 :(得分:0)
我最近在Eclipse程序中加载项目时遇到问题。 该错误与垃圾回收(GC)有关。
当在线搜索解决方案时,我注意到这是由于内存分配。 您可能知道,在Eclipse中,ini文件可用于分配分配给程序的最小和最大内存。
-Xms Initial memory size
-Xmx maximum memory size
当–Xmx
的值更改为更高的值2048m
时,我希望程序可以毫无问题地加载所有项目。
但是,我可以看到相同的错误。
当我进一步研究时,发现系统变量_JAVA_OPTIONS
的值为-Xmx512M
。这已经覆盖了ini文件中的值。
反思:
当程序未反映ini文件中的值时,还值得研究系统变量。