gpt4 book ai didi

java.lang.OutOfMemoryError : PermGen space 错误

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:48 24 4
gpt4 key购买 nike

问题:我正在为我的 spring 应用程序使用 eclipse-helios 和 Tomcat 6 并获得

java.lang.OutOfMemoryError: PermGen space  

每当我调试我的应用程序时

我试过了

  1. 添加

    -vmargs-Dosgi.requiredJavaVersion=1.5-Xms512m-Xmx1024m-XX:MaxPermSize=1204m-XX:+UseConcMarkSweepGC-XX:+CMSClassUnloadingEnabled-XX:+CMSPermGenSweepingEnabled
    eclipse.ini

  2. tomcat_home/bin中创建setenv.shsetenv.bat,内容如下

    设置 JAVA_OPTS="-Xms256m -Xmx512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

  3. 在 Eclipse 中手动运行垃圾收集器。我通过

    启用了这个选项

    Window -> Preferences -> General -> 然后选择always run in background and show heap status

  4. 重启 Tomcat 一百次。

  5. 重新启动 eclipse,有时当挫败感超出限制时重新启动我的机器..

最好的部分是我仍然得到错误。有什么我应该尝试的解决方案吗?


我尝试运行其他应用程序,但仍然遇到同样的错误,恕我直言,我的应用程序太小而不会导致错误,而且我的应用程序在我同事的设置上运行良好。

最佳答案

您的前 3 个选项针对 2 个不同的 JVM。选项 #1 和 #3 修改 eclipse JVM 实例,这是管理您的 IDE 的 JVM。选项 #2 修改 Tomcat JVM 实例。这就是为什么在启动 eclipse 和 Tomcat(假设它们是唯一运行的 Java 应用程序)时,您会在任务管理器中看到两个 java.exe 文件(如果是 Windows)。

重要的是要了解 eclipse WTP(在我的例子中是 Indigo)提供的 Tomcat 插件不会调用外部(依赖于操作系统)脚本来启动/停止 Tomcat。相反,它们直接通过命令行 (java.exe ...) 生成 Tomcat JVM。如果要修改从 eclipse 中启动的 Tomcat 实例的 JVM 参数,则需要修改相应的 Run Configuration。尝试在那里修改 JVM 参数,它应该可以工作(见屏幕截图)。 enter image description here

关于java.lang.OutOfMemoryError : PermGen space 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7387537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com