2012-03-27 114 views
23

。当我使用root帐户时,我可以正常使用java。但是当我的用户帐户,它返回下列错误无法创建面向Java虚拟机初始化的一些问题的Java虚拟机

[email protected]# $JAVA_HOME/bin/java -version 
Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

它不似乎是一个记忆的问题,因为相同的命令可root帐户。可用内存(免费-m)超过1200MB 此外,我已经尝试增加JVM内存限制

+0

你确定两者都使用相同的java可执行文件吗?另外,我认为你可以限制一个特定用户可用的内存,如果你以用户的身份执行ulimit -a,它是否规定了最大内存大小的限制? – 2012-03-27 14:23:01

+0

与内存相关的两行如'最大锁定内存(千字节,-1)32 最大内存大小(千字节,-m)200000' – 2012-03-27 14:28:58

+0

'虚拟内存(千字节,-v)200000' – 2012-03-27 14:29:47

回答

71

只要小心。

export _JAVA_OPTIONS=-Xmx512M

+1

您的评论使我的一天。现在,如果我足够聪明,从我的电子邮件从Stackoverflow设置好评论的通知。 hahahaha – 2013-05-09 20:04:13

+0

这应该是可以接受的答案 – deepdive 2016-06-10 05:06:42

6

我今天有这个问题,对我的问题是,我已经分配了太多的内存:

-Xmx1024M -XX:MaxPermSize=1024m

一旦我降低PermGen的空间,一切都工作得很好:

-Xmx1024M -XX:MaxPermSize=512m

我知道这看起来并不像一个很大的differenc e,但我的机器只有4GB内存,显然这是打破了骆驼背部的吸管。 Java VM在每次操作后都立即失败,因为它无法分配内存。

1

当我编辑文件/etc/bashrc时,问题得到解决,其内容与/etc/profiles/etc/profiles.d/limits.sh中的内容相同,并重新登录。

+3

在做他所建议的事情之前,先尝试'java -version'。这也是提问者的回答,并没有解释做什么的步骤... – deepdive 2016-06-10 05:06:03

5

设置JVM内存的命令,你会得到这个消息确保物理可用内存大于VM定义的最小/最大内存。

1

制作:如果您尝试输入一个不存在这样的

在/ usr/bin中/ JAVA -v