我目前正在寻找有关此的任何帮助。
我正在尝试启动 Tomcat 7 服务器,但我只收到 PermGen Space 异常。
我试图更改 XXMaxPermSize
值,但是当我更改它时,我在启动 Eclipse 时得到一个弹出窗口:
"Failed to Create the JVM"
我之前就遇到过这个错误(Failed to Create the JVM),突然出现。从未更改过我的 eclipse 的配置,但有一天,这发生了,需要更改我的 .ini
文件中的内存分配。
运行 Tomcat 6 完全没问题,但我猜 Tomcat 7 消耗更多
这是我的 Eclipse .ini
:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-vm
C:/Program Files (x86)/Java/jdk1.6.0_45/bin
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms384m
-Xmx1024m
问题出在launcher.XXMaxPermSize
。
不可能增加该值,否则 Eclipse 将不会启动。
它以 256M 启动,但以 512 崩溃......
这不可能是硬件限制,因为我的 PC 有 8G 内存。
有什么想法吗?我错过了一些明显的东西吗?
最佳答案
在 Windows 上,默认情况下,32 位进程最多只能寻址 2 GiB 的内存(即使您有更多的 RAM)。
使用 512 MiB perm,加上 1 GiB 堆以及 JVM/库开销,您可能会超过这个。
如果您从命令行运行它:
java -version
你会看到这样的输出:
java version "1.x.0_xx"
Java(TM) SE Runtime Environment (build 1.x.0_xx-bxx)
Java HotSpot(TM) Client VM (build 25.31-b07, mixed mode, sharing)
64 位 JVM 看起来像这样:
java version "1.x.0_xx"
Java(TM) SE Runtime Environment (build 1.x.0_xx-bxx)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
如果它在 64 位系统上,请升级到 64 位 JVM(尽管可以配置 Windows 以允许在 64 位系统上使用更大的 32 位进程,但 64 位 JVM 是首选方法).
有关详细信息,请参阅此答案:
https://stackoverflow.com/a/9533056/575766
您还应该知道,您可以为永久空间请求任意值(300、384、412 等)。通过一些实验,您可能会发现您有足够的空间以 2 GiB 的限制启动该过程。
关于java - Tomcat 7 PermGen Space 或无法创建 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30840667/