java - Tomcat 7 PermGen Space 或无法创建 JVM

标签 java eclipse tomcat tomcat7 permgen

我目前正在寻找有关此的任何帮助。
我正在尝试启动 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/

相关文章:

java - 在 Java 中将实数转换为 Comparable?

java - Tomcat 使用 "Failed to write core dump."使 Eclipse Kepler 崩溃

java - 什么时候以及为什么我必须选择 Spring Boot?

html - 网站无法从我们公司网络访问,但可以从外部访问

Java:扩展一个类而不是在太多类中执行相同的逻辑。优点和缺点?

java - 通过将新类型指定为泛型的实际类型来扩展泛型有什么好处

java - 如何在 HttpClient 上注册 AuthSchemes

eclipse - Grunt 需要在系统路径中安装指南针警告

python - 由于 pysvn 的动态导入,Eclipse PyDev 发现不存在的错误

java - 如果没有 wtpwebapps 文件夹,则无法在 Tomcat 7 上部署 WAR 文件