当我开发我的应用程序时,我在eclipse中的tomcat上启动它。每次运行都很顺利。
但是当我将war
文件部署到tomcat并使用tomcat的startup.bat时,我经常遇到java.lang.OutOfMemoryError: Java heap space
错误。这在创建Spring @Bean
定义期间发生。它也需要很长时间才能开始。
为什么从eclipse启动应用程序和在tomcat中手动启动应用程序之间存在明显区别?我该如何解决这个问题?
答案 0 :(得分:2)
为tomcat设置这些vm参数,
-XX:PermSize<size> - Set initial PermGen Size.
-XX:MaxPermSize<size> - Set the maximum PermGen Size.
了解更多info。
答案 1 :(得分:0)
看看[this](http://www.jkstack.com/2012/12/how-to-set-tomcat-heap-size-jvm-heap.html)
从tomcat和eclipse启动应用程序之间没有区别。但是它取决于各种参数,例如运行了多少个tomcat实例,任何运行java应用程序的背景巨大内存等等。
答案 2 :(得分:-1)
基本上eclipse.ini设置了所有vm内存参数 - 比如-Xms40m -Xmx512m等 -Xms选项设置初始和最小Java堆大小。 Java堆(“堆”)是内存的一部分,其中内存块分配给对象并在垃圾回收期间释放。 - http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
您可能需要为tomcat调整相同内容。