内存不足错误,permgen,从Java 8变为Java 7

詹姆斯·阮

我遇到了与permgen有关的内存不足错误。

INFO: Deploying web application archive /usr/local/apache-tomcat-7.0.50/webapps/web.war
Jul 09, 2014 2:26:35 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart

Jul 09, 2014 2:26:35 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/web] startup failed due to previous errors
Jul 09, 2014 2:26:36 PM org.apache.catalina.startup.HostConfig deployWARs
SEVERE: Error waiting for multi-thread deployment of WAR files to complete
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:812)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:489)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1592)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:331)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:801)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: PermGen space
    at java.util.concurrent.ConcurrentHashMap$Values.iterator(ConcurrentHashMap.java:1449)
    at java.util.AbstractCollection.toArray(AbstractCollection.java:179)
    at org.apache.catalina.session.ManagerBase.findSessions(ManagerBase.java:707)
    at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:525)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5643)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:634)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1074)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1858)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    ... 4 more

Jul 09, 2014 2:26:36 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:690)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
Caused by: java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1130)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1592)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:331)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:801)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Exception in thread "main"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"

这是我在setenv.sh中的JAVA_OPTS变量。

export JAVA_OPTS =“-Xms1g -Xmx2g -XX:MaxPermSize = 2g”

如果我从intellij运行tomcat(使用相同的选项),则可以正常工作,并且可以部署我的网络战争。跑步

从命令行启动catalina.sh jpda会给我该错误。

使用JRE_HOME:/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home

`

我最近有jdk1.8,然后使用此链接中的答案将其删除。

从Mac移除Java 8

$ java -version
Java版本“ 1.7.0_60” Java(TM)SE运行时环境(内部版本1.7.0_60-b19)Java HotSpot(TM)64位服务器VM(内部版本24.60-b09,混合模式)

»echo $ JAVA_HOME /库/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre

任何帮助,将不胜感激,谢谢。

m

JAVA_OPTS 在外部(不是通过IDE)启动时未设置

尝试设置 JAVA_OPTS

export JAVA_OPTS="-Xms1g -Xmx2g -XX:MaxPermSize=2g"

从命令行启动服务器之前,如果它可以正常工作,则在以下位置添加此export语句 ~/.bash_profile

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

内存不足错误,Java堆空间

来自分类Dev

Java集合内存不足错误

来自分类Dev

内存不足错误,Java堆空间

来自分类Dev

Java内存不足阵列错误

来自分类Dev

Android Java错误内存不足

来自分类Dev

Python Spark:Java内存不足错误

来自分类Dev

内存不足错误:Android Studio上的Java堆内存

来自分类Dev

内存不足Java Eclipse

来自分类Dev

内存不足异常Java

来自分类Dev

Java任务-内存不足

来自分类Dev

我收到内存不足错误:Java堆空间异常

来自分类Dev

嵌套循环导致内存不足错误:Java堆空间

来自分类Dev

Bitmap.createBitmap内存不足错误Java

来自分类Dev

连线内存不足:ffmpeg 库的 Java 堆空间错误

来自分类Dev

Java内存不足-堆大小不足

来自分类Dev

内存不足错误| 在WAS 8上部署

来自分类Dev

运行时错误7:内存不足并加速代码

来自分类Dev

Java在VPS上的内存不足

来自分类Dev

Java尝试捕获-内存不足

来自分类Dev

Java在VPS上的内存不足

来自分类Dev

内存不足Java堆spcae与MySQL

来自分类Dev

superCSV java 库内存不足

来自分类Dev

从Kettle中的json文件导入数据时出现Java内存不足错误

来自分类Dev

NetBeans安装处理器期间的Java内存不足错误

来自分类Dev

Java,Spring:流文件下载以避免内存不足错误

来自分类Dev

内存不足错误:Java堆空间-使用大数组大小

来自分类Dev

在Java电子邮件服务将引发“内存不足”的错误

来自分类Dev

NetBeans安装处理器期间的Java内存不足错误

来自分类Dev

内存不足错误:Java堆空间-使用大数组大小