增加基于Windows安装程序的Tomcat PermGen Space

时间:2014-01-14 01:03:26

标签: java windows tomcat grails

我遇到了Tomcat的一些问题。我正在部署Grails应用程序,当我添加新功能时,我在stacktrace文件中得到了这个(遗憾的是)错误:

Caused by: java.lang.OutOfMemoryError: PermGen space
2014-01-13 19:28:35,753 [http-bio-8080-exec-26] ERROR StackTrace  - Full Stack Trace:
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.OutOfMemoryError: PermGen space
    at gsp_liquidaciones_liquidacionDeComplejolist_gsp$_run_closure2.doCall(gsp_liquidaciones_liquidacionDeComplejolist_gsp.groovy:84)
    at gsp_liquidaciones_liquidacionDeComplejolist_gsp.run(gsp_liquidaciones_liquidacionDeComplejolist_gsp.groovy:105)
    at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)
    at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
...

我有一个基于Windows安装程序的tomcat安装,我也没有catalina.bat文件。谷歌搜索许多页面建议修改此文件(catalina.bat)或注册JAVA_OPTS变量,但没有任何作用。那么,我在哪里必须指定这些参数?:

SET JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC”

我尝试通过Apache Tomcat 7 Properties窗口修改Java Options,但修改后服务器无法启动。

tomcat java configuration tab

我的电脑安装了4Gb RAM。

提前致谢。

3 个答案:

答案 0 :(得分:8)

对于以下系统规范:

  • Windows 7 64位
  • 4 GB已安装RAM
  • 英特尔酷睿i7处理器
  • Java(TM)SE运行时环境(版本1.6.0_25-b06)

可接受行为的Tomcat 7 Java属性可能是: tomcat java configuration

答案 1 :(得分:2)

当tomcat作为Windows服务安装时,你应该有一个小的Windows应用程序'tomcat6w.exe'或'tomcat7w.exe'。当您启动此应用程序时,它有一个标签'Java',您可以在其中设置JVM参数。有关详细信息,请参阅more memory to Tomcat service

您只需输入以-X开头的参数。

答案 2 :(得分:2)

这项工作适用于 apache-tomcat-8.0.15 ,但我认为对tomcat的所有版本来说都是一样的。

我执行了regedit并找到了这条路:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat8

将ImagePath密钥更改为:

C:\apache-tomcat-8.0.15\bin\tomcat8.exe //RS//Tomcat8 ++JvmOptions -XX:PermSize=128m -XX:MaxPermSize=512m