Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法创建Java虚拟机_Java_Linux_Jvm - Fatal编程技术网

无法创建Java虚拟机

无法创建Java虚拟机,java,linux,jvm,Java,Linux,Jvm,java虚拟机初始化面临一些问题。当我使用根帐户时,我可以正确地使用java。但当我是一个用户帐户时,它会返回以下错误 user@host# $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. 这看起来不像是内存问题,因为同一

java虚拟机初始化面临一些问题。当我使用根帐户时,我可以正确地使用java。但当我是一个用户帐户时,它会返回以下错误

user@host# $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.
这看起来不像是内存问题,因为同一个命令适用于根帐户。可用内存(空闲-m)超过1200MB
此外,我还尝试增加JVM内存限制

我今天遇到了这个问题,对我来说,问题是我分配了太多内存:

-Xmx1024M-XX:MaxPermSize=1024m

一旦我缩小了PermGen空间,一切都很好:

-Xmx1024M-XX:MaxPermSize=512m


我知道这看起来没什么区别,但我的机器只有4GB内存,很明显,这是压坏骆驼背的稻草。Java VM在每次操作时都会立即失败,因为它无法分配内存。

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

请小心。如果您尝试输入一个不存在的命令,您将收到此消息,例如:

/usr/bin/java -v
设置JVM内存:


export\u JAVA\u OPTIONS=-Xmx512M

确保物理可用内存大于VM定义的最小/最大内存。

您确定两者使用相同的JAVA可执行文件吗?另外,我认为你可以限制特定用户可用的内存,如果你作为用户使用ulimit-a,它是否说限制最大内存大小?与内存相关的两行代码类似于
max locked memory(kbytes,-l)32 max memory size(kbytes,-m)200000
虚拟内存(kbytes,-v)200000
,我猜,您需要为Java应用程序授予适当的安全权限,以便在用户模式下更改内存。现在,如果我足够聪明,可以从Stackoverflow向我的电子邮件发送好的评论通知。哈哈哈,这也解决了我的问题。该命令在openjdk-8中为-version,但在openjdk-11中为--version(两个破折号)。他们真的需要一个更好的“未知命令”错误消息>\u尝试
java-version
,然后再执行他建议的操作。这也是提问者的答案,并没有解释具体步骤是什么。。。