`
li.feixiang
  • 浏览: 120576 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

How do I increase the permgen size available to Eclipse?

 
阅读更多

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.

分享到:
评论

相关推荐

    解决OutOfMemoryError: PermGen space

    - 对于通过命令行启动的应用程序,可以在启动命令中添加`-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 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...

    解决JVM中得PermGen spac问题

    解决 JVM 中的 PermGen space 问题 PermGen space(Permanent Generation space)是 JVM 中的一块永久保存区域,用于存放 Class 和 Meta 信息。当应用程序加载 Class 时,Class 就会被放入 PermGen space 区域中,...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

    java.lang.OutOfMemoryError: PermGen space解决方案

    java.lang.OutOfMemoryError: PermGen space 解决方案

    PermGen space

    ### PermGen Space详解 在Java虚拟机(JVM)中,PermGen Space,全称Permanent Generation Space,是用于存储类的元数据、常量池、字符串常量等非实例对象数据的一个内存区域。与普通对象的堆空间不同,PermGen ...

    java.lang.OutOfMemoryError: PermGen space

    《Java中的PermGen空间及其内存溢出问题》 在Java编程中,我们常常会遇到一个让人头疼的问题,那就是“java.lang.OutOfMemoryError: PermGen space”错误。这个错误提示表明,应用程序在运行过程中,内存的永久代...

    OutOfMemoryError-PermGen-space-的解决方案亲测有效

    ### OutOfMemoryError: PermGen space 错误详解与解决方案 #### 一、问题背景及症状 在开发或运行基于Java的应用程序时,有时会遇到一个常见的错误提示:“OutOfMemoryError: PermGen space”。该错误通常发生在...

    Java8新特性之再见Permgen_动力节点Java学院整理

    Java 8引入了许多新特性,其中一项重要的变化就是告别了 PermGen 空间,转而采用元空间 (Metaspace) 来存储类元数据。PermGen space,全称为Permanent Generation space,是早期Java HotSpot虚拟机中的一个内存区域...

    PermGen space错误解决方法

    讲述了PermGen space错误解决方法以及PermGen space的出现的几张情况

    解决Eclipse Tomcat OutOfMemoryError:PermGen space的问题

    然而,在运行过程中,开发者可能会遇到一个棘手的问题,即`OutOfMemoryError: PermGen space`。这个错误表明Java虚拟机(JVM)的永久代(PermGen)空间已满,无法再分配内存给新加载的类和元数据。 PermGen空间是...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    《深入理解Java虚拟机中的内存溢出: PermGen与Heap空间》 在Java应用程序的运行过程中,内存管理是至关重要的,尤其是对于服务器端应用如Tomcat来说,内存配置的合理与否直接影响到应用的稳定性和性能。本文将针对...

    Tomcat多应用时遇到的PermGen SPACE问题

    NULL 博文链接:https://eastzhang.iteye.com/blog/1788854

    Java内存不足PermGen space错误探究.pdf

    Java内存不足PermGen space错误通常出现在Java程序运行过程中,尤其是当Java EE服务器(如Tomcat、JBoss等)加载WAR或EAR包时。这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存...

    eclipse 内存溢出解决办法

    ### Eclipse 内存溢出解决办法详解 #### 一、PermGen Space 概念与问题成因 在Java虚拟机(JVM)中,PermGen Space(Permanent Generation Space)是专门用于存储Class和Meta信息的一个区域。当一个Class被加载到...

    eclipse_failed_to_create_the_java_virtual_machine_问题图文解析_收藏

    "Eclipse Failed to Create the Java Virtual Machine 问题图文解析" Eclipse 是一个功能强大的集成开发环境(IDE),广泛应用于软件开发、测试和维护中。然而,在使用 Eclipse 时,可能会遇到 "Failed to create ...

Global site tag (gtag.js) - Google Analytics