2010-04-15 41 views
2

我创造它打印的东西的System.out一个简单的Java文件,编译和以下运行,无法创建任何JVM(> 1024M)

public class MyClass { 

    public static void main(String[] args) { 
     System.out.println("MyClass here"); 
    } 
} 

的java -Xmx1024m MyClass的

我得到

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

我有4GB的内存,我不知道为什么这不起作用。做java -Xmx512m MyClass的作品,但我想知道为什么1GB将被拒绝。

+0

为了测试,它是否以1G的更高Xmx开始? – JoseK 2010-04-15 09:21:37

+0

我用1G运行,仍然是相同的问题! – 2010-04-15 09:37:37

+0

奇怪的问题,但你的页面文件设置为?它很低? – mikek 2010-04-21 08:09:24

回答

1

运行默认的VM -Xms512m -Xmx1024m

的默认设置是有点低了日食,这是一个有点内存猪的。

+0

我把它与1G和512M都运行,都不工作 – 2010-04-15 09:38:16

+0

啊,你有没有尝试将尺寸大小提高到512米? – mikek 2010-04-15 13:46:42

+0

其实,我无法启动任何JVM(即使是mvn干净安装),它们都会提供相同的错误。有没有通过一步一步的指导调试呢? – 2010-04-15 14:22:56

1

我遇到过类似的问题 - 对我来说,限制是在768M内存附近。显然,JVM试图获得更大的内存量,并且在某些情况下存在限制,应用程序可以获得多少内存。

如果您使用的是32位系统,但能够使用64位,则使用后者,这可能会有帮助。在64位系统上,我没有遇到这个错误。

+0

如果他在32位系统上,我不认为他能够使用任何64位应用程序=) – mikek 2010-04-16 09:01:50

+0

这就对了。但是我在32位系统中没有任何解决方案时遇到了类似的问题所以如果他可以使用64位系统进行尝试,至少可以进行测试。 – 2010-04-16 13:59:14