use*_*731 78 java eclipse jvm jvm-arguments
首先,我有一个8GB的内存盒,所以我怀疑总内存是什么问题.此应用程序在6GB或更低的机器上运行良好.
我试图在Eclipse的Run Configurations中的"VM Arguments"下使用-Xmx3G保留3GB的空间.
每次我尝试保留超过1500mb时,我都会收到此错误:"VM初始化期间出错; 无法使用-Xmx3G为对象堆保留足够的空间
这里发生了什么?
小智 62
可能是你在那台机器上使用32位jvm吗?
Moh*_*del 55
以下是如何修复它:
转到 Start->Control Panel->System->Advanced(tab)->Environment Variables->System
Variables->New:
Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M
Variable name: Path
Variable value: ;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
Run Code Online (Sandbox Code Playgroud)
将其更改为适当的路径.
E-R*_*Riz 40
这实际上不是特定于Eclipse的问题; 这是一个普遍的Java-on-Windows问题.这是因为JVM在Windows上分配内存的方式; 它坚持分配连续的内存块,这通常是Windows无法提供的,即使有足够的单独块来满足分配请求.有些实用程序会尝试帮助Windows"整理"其内存,这在理论上可以帮助这种情况; 但我并没有真正认真对待它们,所以不能说它们的有效性.我听过有时可能有帮助的一件事是重启Windows,在启动任何其他应用程序之前,启动需要大块内存的Java应用程序.如果你很幸运,Windows将不会破坏其内存空间,Java将获得所要求的连续块.
在互联网的某个地方有更多的技术解释和分析这个问题,但我没有任何参考方便.
我确实找到了这个,看起来很有帮助:https://stackoverflow.com/a/497757/639520
Dan*_*eón 20
首先,32位的JRE不能使用更多~1.5Gb的ram.因此,如果您想要更多,请使用64位JRE.
其次,当一个新的JVM启动时,它会对正在运行的所有JVM的-Xmx属性求和,并检查系统上是否有足够的内存在自己的-Xmx上运行,如果还不够则会发生错误.
小智 15
我在eclipse IDE中使用Liferay和Tomcat服务器.点击服务器启动时我遇到了同样的错误.双击eclipse中的服务器.它打开了服务器概述页面.更新了-Xmx1024m -XX的内存参数:MaxPermSize = 256m至-Xmx512m -XX:MaxPermSize = 256m.然后它为我工作.
确保Eclipse实际上运行您认为正在运行的JVM.如果你曾经在你的网络浏览器中使用过java,你可能会有一个32位版本,如果最近安装或更新它可能会优先考虑.
为了绝对确定,我建议将这两行添加到eclipse.ini顶部的文件中:
-vm
C:/Java/jdk1.6.0_27/bin
Run Code Online (Sandbox Code Playgroud)
...在我的机器C:/Java/jdk1.6.0_27/bin上,我所知道的JVM是64位的位置.一定要有bin文件夹.
(作为奖励,在Windows 7上,这也允许你实际"固定标签",这就是为什么我必须为自己的用法这样做)
小智 5
只需将符号放在gradle.properties#前面即可org.gradle.jvmargs=-Xmx1536m
# org.gradle.jvmargs=-Xmx1536m
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
519957 次 |
| 最近记录: |