我正在使用jsp / servlet开发Web应用程序,我遇到了netbeans和Java的问题。我的程序需要大量的数据处理。所以我使用-Xmx512m通过
增加最大堆大小工具 - >服务器 - >在“平台”选项卡上,下面有一个VM选项 Java平台。 然后它工作正常..
现在我的问题是我正在构建 WAR 文件,直接部署并在我的另一台机器Tomcat中运行以进行演示, 在这里我面临同样的问题java内存错误堆空间 我也试过
环境变量集CATALINA_OPTS = -Xms512m -Xmx512m
这对我没有帮助
如何解决此问题?请指出正确的方向
答案 0 :(得分:10)
尝试设置PermSize
和MaxPermSize
值,并设置为Catalina.bat
中的tomcat 启动,然后stop
和{{1使用这个脚本。
start
http://javahowto.blogspot.co.uk/2006/06/6-common-errors-in-setting-java-heap.html
答案 1 :(得分:7)
最后,我找到了问题的解决方案
在Catalina.bat文件中 你可以找到一些如下文字
set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
set SECURITY_POLICY_FILE=
set DEBUG_OPTS=
set JPDA=
根据你需要把
设置CATALINA_OPTS = -Xms512m -Xmx512m
堆大小比计算机的物理内存大。例如,
java -Xmx2g BigApp VM初始化期间发生错误 无法为对象堆保留足够的空间 无法创建Java虚拟机。
修复方法是使其低于物理内存:java -Xmx1g BigApp
答案 2 :(得分:0)
我知道我的答复完全迟到了,但是如果对任何人遇到同样的情况都有用的话,我认为值得在这里加注。我指的是tomcat 9,因此您可能需要检查此处提到的内容与您的版本的相关性:
在%CATALINA_HOME%/ bin / catalina.bat中,它明确指出:
rem WHEN RUNNING TOMCAT AS A WINDOWS SERVICE:
rem Note that the environment variables that affect the behavior of this
rem script will have no effect at all on Windows Services. As such, any
rem local customizations made in a CATALINA_BASE/bin/setenv.bat script
rem will also have no effect on Tomcat when launched as a Windows Service.
rem The configuration that controls Windows Services is stored in the Windows
rem Registry, and is most conveniently maintained using the "tomcatXw.exe"
rem maintenance utility, where "X" is the major version of Tomcat you are
rem running.
如果您检查%CATALINA_HOME%/ bin文件夹,则可以找到一个名为“ tomcat9w.exe”的文件。双击它,您会看到此屏幕快照,可以在其中设置Xms和Xmx参数,以便将其保存到注册表中
希望这会有所帮助
答案 3 :(得分:0)
内存不足错误可能是由于Tomcat的web.xml中的会话超时数量大而导致的。在这种情况下,许多Web会话会占用许多系统内存。
答案 4 :(得分:-1)
我建议您使用IBM Support Workbench(具有堆转储分析器)启用堆转储和分析,并准确理解问题并相应地进行配置。