java.lang.OutOfMemoryError:PermGen空间仍然存在

时间:2015-04-03 08:33:04

标签: java eclipse spring tomcat

我在eclipse中通过tomcat调试项目,错误抛出: enter image description here enter image description here enter image description here 并且日食没有反应,错误报告如

  

守护程序系统线程[Java2D Disposer](已暂停(例外   OutOfMemoryError))拥有:Win32GraphicsEnvironment(id = 116)拥有:   FontStrikeDisposer(id = 117)D3DGraphicsDevice.getDeviceCaps(int)   line:108 D3DGraphicsDevice.createDevice(int)行:87
    Win32GraphicsEnvironment.makeScreenDevice(int)行:208
    Win32GraphicsEnvironment(SunGraphicsEnvironment).getScreenDevices()   line:139 Win32GraphicsEnvironment.getDefaultScreenDevice()行:   96 StrikeCache.disposeStrike(FontStrikeDisposer)行:284     FontStrikeDisposer.dispose()行:98

当我再次调试时,错误报告如

  

严重:servlet [springDispatcher]的Servlet.service()与上下文有关   path [/ api]抛出异常[处理程序处理失败;嵌套   异常是带有root的java.lang.OutOfMemoryError:PermGen space]   导致java.lang.OutOfMemoryError:PermGen空间at   java.lang.ClassLoader.defineClass1(Native Method)at   java.lang.ClassLoader.defineClass(ClassLoader.java:800)at   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     在   org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)     在   org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)     at java.lang.ClassLoader.defineClass1(Native Method)at   java.lang.ClassLoader.defineClass(ClassLoader.java:800)at   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     在   org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)     在   org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)     在   org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:144)     在   org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:41)     在   org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:85)     在   org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:55)     在   org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169)     在   org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:149)     在   org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:84)     在   org.springframework.data.redis.core.DefaultHashOperations.get(DefaultHashOperations.java:44)     在   com.unistrong.tracker.service.cache.UserCache.getUserToken(UserCache.java:31)     在   com.unistrong.tracker.handle.UserHandle.saveLogon(UserHandle.java:439)     在   com.unistrong.tracker.web.UserController.logon(UserController.java:98)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)     在   org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)     在   org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

     

线程“Java2D Disposer”中的异常

我已经改变了eclipse.ini和tomcat以扩大内存,但错误仍然存​​在 enter image description here enter image description here

如何解决问题?提前谢谢你!

1 个答案:

答案 0 :(得分:1)

您需要通过java命令参数增加PermGen大小:

-XX:MaxPermSize=128M