无法创建Java虚拟机
java虚拟机初始化面临一些问题。当我使用根帐户时,我可以正确地使用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. 这看起来不像是内存问题,因为同一
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
,然后再执行他建议的操作。这也是提问者的答案,并没有解释具体步骤是什么。。。