知识点
相关文章
更多最近更新
更多MyEclipse启动tomcat出现java.lang.OutOfMemoryError: PermGen space 的解决方案
2019-03-01 21:19|来源: 网络
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
一、手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.bat(windows系统)或者catalina.sh(unix系统)在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=256M -XX:MaxPermSize=512m
二、如果启动Tomcat的时候是通过MyEclipse启动服务器的话,需要在MyEclipse里面同样设置内存大小
本文链接:MyEclipse启动tomcat出现java.lang.OutOfMemoryError: PermGen space 的解决方案【http://www.656463.com/article/481】,转自:http://blog.sina.com.cn/s/blog_6e6315e30100x20s.html
相关问答
更多-
这有时会发生,如果你编译巨大的代码库 - 许多类被加载到运行sbt的虚拟机中。 您需要为sbt增加PermGen空间 - 使用标志-XX:MaxPermSize=256m ,其中256可以根据永久生成的期望大小进行更改。 跑: cat `which sbt` 找到你的启动脚本。 然后编辑它以包含带有运行sbt启动程序的java命令的标志,方法与此处所述的修改-Xmx和-Xms相似。 添加-XX:+CMSClassUnloadingEnabled标志还应该使sbt能够卸载以前编译运行中不再使用的类的类加载器 ...
-
OC4J 10.1.3 java.lang.OutOfMemoryError:PermGen空间(OC4J 10.1.3 java.lang.OutOfMemoryError: PermGen space)[2022-08-20]
java.lang.OutOfMemoryError通常表示您尝试运行的程序需要的RAM多于分配给它的RAM。 尝试将XX:MaxPermSize=128M增加到像XX:MaxPermSize=1G这样大的东西XX:MaxPermSize=1G并查看它是否有帮助。 java.lang.OutOfMemoryError usually indicates the program you are trying to run requires more RAM than you are allocating to ... -
尝试提高perm空间,添加以下参数到vm启动 -XX:PermSize = 256m -XX:MaxPermSize = 256m 还在Eclipse中向Tomcat添加-XX:MaxPermSize = 256m : Server > Open Launch Configuration > Arguments 更新(2014年):看看这个问题并回答有关新的Java 8元空间。 并看看这里: 如何处理“java.lang.OutOfMemoryError:PermGen空间”错误 try to raise ...
-
PermGen空间是Tomcat用于存储被定义的类定义(仅定义,无实例化)和字符串池。 从经验来看,PermGen空间问题往往在开发环境中经常发生,因为Tomcat必须在每次部署WAR或执行jspc(编辑jsp文件时)时加载新类。 就个人而言,当我进行开发测试时,我倾向于部署和重新部署战争,所以我知道我迟早会运行(主要是因为Java的GC周期仍然很糟糕,所以如果你快速,频繁地重新部署你的战争足够了,空间比他们可以管理的更快)。 理论上讲,这在生产环境中应该更少,因为您(希望)不要在10分钟的时间内更改代码库 ...
-
OutOfMemoryError: PermGen space的原因OutOfMemoryError: PermGen space是它没有足够的永久生成空间 :)如果使用Oracle JVM,则需要将-XX:MaxPermSize=256M (或其他一定量的空格)参数添加到您的sbt脚本。 对于其他JVM,请查看他们的文档。 The cause for OutOfMemoryError: PermGen space is that it doesn't have enough permanent gener ...
-
当你说你增加了MAVEN_OPTS ,你增加了什么价值? 您是否增加了MaxPermSize ,如下例所示: export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m" (或在Windows上:) set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m When you say you increased MAVEN_OPTS, what values did you increase? Did you increase the ...
-
解决方案是在Tomcat启动时将这些标志添加到JVM命令行: -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 您可以通过关闭tomcat服务,然后进入Tomcat / bin目录并运行tomcat6w.exe来执行此操作。 在“Java”选项卡下,将参数添加到“Java选项”框中。 单击“确定”,然后重新启动服务。 如果您收到错误指定的服务不存在作为已安装的服务,您应该运行: tomcat6w //ES//servicename ...
-
这是Tomcat特有的。 这是一个糟糕的hotpublisher / hotdeployer,它遭受内存泄漏。 我建议通过Eclipse中的服务器配置屏幕关闭自动发布,只要您想反映保存的更改,只需手动重启Tomcat。 如果您只有一个项目,重启不应该花费太多时间。 例如,Glassfish在热发布时更强大(更快!)。 至于如何安装Glassfish并将其集成到Eclipse中以进行JSF 2.0开发,请查看本教程 。 This is specific to Tomcat. It's pretty a poo ...
-
该解决方案在设置初始和最大内存池旁边,是将-XX:MaxPermSize=1000m添加到java选项卡中的java选项。 the solution was beside setting initial & maximum memory pool, is to add -XX:MaxPermSize=1000m to the java options in the java tab.
-
如果使用eclipse IDE而不是使用它,则可以更改VM参数 double click on the server > open Lunch Configuration > Arguments > VM Arguments 并在VM Arguments字段中追加两行以下 -Xms256m -Xmx1024m -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote -XX:PermSize=256m -XX:MaxPermSize=512m 它一定会解 ...