If you see java.lang.OutOfMemoryError: PermGen space
errors, you need to increase the permanent generation space available to Eclipse.
PermGen is the permanent generation of objects in the VM (Class
names, internalized strings, objects that will never get
garbage-collected). An easy, if somewhat memory-hungry fix is to enlarge
the maximum space for these objects by adding
-XX:MaxPermSize=128M
as an argument to the JVM when starting Eclipse. The recommended way to do this is via your eclipse.ini
file.
Alternatively, you can invoke the Eclipse executable with command-line arguments directly, as in
eclipse [normal arguments] -vmargs -XX:PermSize=64M -XX:MaxPermSize=128M [more VM args]
Note: The arguments after -vmargs
are directly passed to the VM. Run java -X
for the list of options your VM accepts. Options starting with -X
are implementation-specific and may not be applicable to all JVMs (although they do work with the Sun/Oracle JVMs).
Eclipse and Sun VMs on Windows
Eclipse 3.3 and above supports an argument to the launcher: --launcher.XXMaxPermSize
. On Windows, Eclipse ships with the following lines in the eclipse.ini
file:
--launcher.XXMaxPermSize
256m
With the above arguments, if the VM being used is a Sun VM and there is not already a -XX:MaxPermSize=
VM argument, then the launcher will automatically add -XX:MaxPermSize=256m
to the list of VM arguments being used.
The Eclipse launcher is only capable of identifying Sun VMs on Windows.
The option --launcher.XXMaxPermSize is something that the
launcher reads (not the JVM); it tells the launcher to automatically
size the JVM's perm gen if it (the launcher) detects a Sun JVM that
supports that option. This alleviates the need to put it under -vmargs
(where non-Sun JVM's could fail because they don't understand that
option).
Note:
Eclipse 3.6 and below on Windows has a bug
with Oracle/Sun JDK 1.6.0_21
(July 2010) where the launcher cannot detect a Oracle/Sun VM, and
therefore does not use the correct PermGen size. If you are using either
of this version, add the -XX
flag to the eclipse.ini
as described above.
Note: Eclipse 3.3.1 has a bug
where the launcher cannot detect a Sun VM, and therefore does not use
the correct PermGen size. It seems this may have been a known bug on Mac OS X
for 3.3.0 as well. If you are using either of these platform combinations, add the -XX
flag to the eclipse.ini
as described above.
分享到:
相关推荐
- 对于通过命令行启动的应用程序,可以在启动命令中添加`-XX:PermSize=<size>`和`-XX:MaxPermSize=<size>`参数来设置PermGen space的初始和最大大小。例如:`-XX:PermSize=256M -XX:MaxPermSize=512M`。 - 对于在...
Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...
解决 JVM 中的 PermGen space 问题 PermGen space(Permanent Generation space)是 JVM 中的一块永久保存区域,用于存放 Class 和 Meta 信息。当应用程序加载 Class 时,Class 就会被放入 PermGen space 区域中,...
在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...
### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...
java.lang.OutOfMemoryError: PermGen space 解决方案
### PermGen Space详解 在Java虚拟机(JVM)中,PermGen Space,全称Permanent Generation Space,是用于存储类的元数据、常量池、字符串常量等非实例对象数据的一个内存区域。与普通对象的堆空间不同,PermGen ...
《Java中的PermGen空间及其内存溢出问题》 在Java编程中,我们常常会遇到一个让人头疼的问题,那就是“java.lang.OutOfMemoryError: PermGen space”错误。这个错误提示表明,应用程序在运行过程中,内存的永久代...
### OutOfMemoryError: PermGen space 错误详解与解决方案 #### 一、问题背景及症状 在开发或运行基于Java的应用程序时,有时会遇到一个常见的错误提示:“OutOfMemoryError: PermGen space”。该错误通常发生在...
Java 8引入了许多新特性,其中一项重要的变化就是告别了 PermGen 空间,转而采用元空间 (Metaspace) 来存储类元数据。PermGen space,全称为Permanent Generation space,是早期Java HotSpot虚拟机中的一个内存区域...
讲述了PermGen space错误解决方法以及PermGen space的出现的几张情况
然而,在运行过程中,开发者可能会遇到一个棘手的问题,即`OutOfMemoryError: PermGen space`。这个错误表明Java虚拟机(JVM)的永久代(PermGen)空间已满,无法再分配内存给新加载的类和元数据。 PermGen空间是...
《深入理解Java虚拟机中的内存溢出: PermGen与Heap空间》 在Java应用程序的运行过程中,内存管理是至关重要的,尤其是对于服务器端应用如Tomcat来说,内存配置的合理与否直接影响到应用的稳定性和性能。本文将针对...
NULL 博文链接:https://eastzhang.iteye.com/blog/1788854
Java内存不足PermGen space错误通常出现在Java程序运行过程中,尤其是当Java EE服务器(如Tomcat、JBoss等)加载WAR或EAR包时。这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存...
### Eclipse 内存溢出解决办法详解 #### 一、PermGen Space 概念与问题成因 在Java虚拟机(JVM)中,PermGen Space(Permanent Generation Space)是专门用于存储Class和Meta信息的一个区域。当一个Class被加载到...
"Eclipse Failed to Create the Java Virtual Machine 问题图文解析" Eclipse 是一个功能强大的集成开发环境(IDE),广泛应用于软件开发、测试和维护中。然而,在使用 Eclipse 时,可能会遇到 "Failed to create ...