java内存不足错误堆空间

java内存不足错误堆空间,java,tomcat,out-of-memory,Java,Tomcat,Out Of Memory,我正在用jsp/servlet开发web应用程序,我对netbeans和Java有一个问题。我的程序需要大数据处理。因此,我使用-Xmx512m通过 工具->服务器->在平台选项卡上,下面有一个VM选项 Java平台。 那就好了 现在我的问题是我正在构建WAR文件,直接部署并运行在另一台机器Tomcat中进行演示, 在这里,我面临同样的问题java内存不足错误堆空间 我也试过了 环境变量集CATALINA_OPTS=-Xms512m-Xmx512m 这也帮不了我 如何解决这个问题?请给我指出正确

我正在用jsp/servlet开发web应用程序,我对netbeans和Java有一个问题。我的程序需要大数据处理。因此,我使用-Xmx512m通过

工具->服务器->在平台选项卡上,下面有一个VM选项 Java平台。 那就好了

现在我的问题是我正在构建WAR文件,直接部署并运行在另一台机器Tomcat中进行演示, 在这里,我面临同样的问题java内存不足错误堆空间 我也试过了

环境变量集CATALINA_OPTS=-Xms512m-Xmx512m

这也帮不了我


如何解决这个问题?请给我指出正确的方向

尝试设置
PermSize
MaxPermSize
值,这些值应该在
Catalina.bat
中的tomcat启动时设置,然后使用此脚本
停止
启动

  set CATALINA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m

我建议您使用IBM support Workbench(具有堆转储分析器)启用堆转储和分析,并准确理解问题并相应地进行配置。

最后我找到了解决问题的方法

在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_选项=-Xms512m-Xmx512m

堆大小大于计算机的物理内存。比如说,

java-Xmx2g BigApp 初始化VM时出错 无法为对象堆保留足够的空间 无法创建Java虚拟机


修复方法是使其低于物理内存:java-Xmx1g BigApp

我知道我的回答完全迟到了,但如果有人遇到同样的情况,我认为值得在这里写一个注释。我指的是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参数,以便为您保存到注册表中


希望这对您有所帮助。

内存不足错误可能是Tomcat的web.xml中的会话超时数过大造成的。在这种情况下,许多web会话可能占用许多系统内存。

将其设为-Xmx1024m,然后重试。环境变量中的位置?最终我找到了问题的解决方案请参见我的答案below@Sathish您使用的是哪种环境?窗口还是Unix?在Catalina.bat中,我需要添加哪一行that@duffymo你看到Catalina.bat文件了吗有很多行。。这就是我问你的
set CATALINA\u OPTS=
。你必须更新这一行。@Sathish-是的,但它们并不都设置CATALINA_选项。