我被踩了。
作为根:
root@web01 [~]# uname -a
Linux web01 2.6.32-71.29.1.el6.x86_64 #1 SMP Mon Jun 27 19:49:27 BST 2011 x86_64 x86_64 x86_64 GNU/Linux`
root@web01 [~]# java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
作为低权限用户:
user@web01 [~]# java -Xmx32m -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
更新:
ulimit-a的输出(当作为低权限用户运行时(:
core file size (blocks, -c) 200000
data seg size (kbytes, -d) 200000
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7875
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) 200000
open files (-n) 100
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 35
virtual memory (kbytes, -v) 200000
file locks (-x) unlimited
virtual memory (kbytes, -v) 200000
这是你的罪魁祸首。具有32M堆的Java Vm不适合这样:
$java-版本java版本"1.6.0_22"OpenJDK运行时环境(IcedTea6 1.10.3((fedora-5.1.10.3.fc15-x86_64(OpenJDK 64位服务器虚拟机(内部版本20.0-b11,混合模式($ulimit-v 200000$java-版本初始化虚拟机时出错无法为对象堆保留足够的空间无法创建Java虚拟机。
在/etc/security/limits.conf 中添加以下行
<user> soft as unlimited
<user> hard as unlimited
用您的linux用户替换<user>
-as(地址空间(将用于修改虚拟/实际存储器。