gpt4 book ai didi

Java 包装器内存不足

转载 作者:行者123 更新时间:2023-12-04 10:48:05 25 4
gpt4 key购买 nike

我有一个在 java 包装器下运行的程序,因为该应用程序必须作为 Windows 服务运行。但是,我遇到了 线程“Thread-5”中的异常 java.lang.OutOfMemoryError: Java 堆空间 每两周运行一次应用程序后。

内存值被注释掉。这是否意味着允许此应用程序使用的内存没有限制?

我也在检查可能内存泄漏的代码,但是有什么方法可以修改配置以查找原因/防止内存不足错误?

#********************************************************************
# Wrapper Java Properties
#********************************************************************
# Java Application
# Locate the java binary on the system PATH:
#wrapper.java.command=%JAVA_HOME%\bin\java
# Specify a specific java binary:
set.JAVA_HOME=%JAVA_HOME%
wrapper.java.command=%JAVA_HOME%\bin\java

# Tell the Wrapper to log the full generated Java command line.
#wrapper.java.command.loglevel=INFO

# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
# of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=%JAVA_HOME%\lib\tools.jar
wrapper.java.classpath.3=C:\daifuku\wms\tomcat\webapps\wms\WEB-INF\classes
wrapper.java.classpath.4=C:\daifuku\wms\tomcat\webapps\wms\WEB-INF\lib\*.jar
wrapper.java.classpath.5=C:\daifuku\wms\tomcat\lib\comm.jar
wrapper.java.classpath.6=C:\daifuku\wms\tomcat\lib\servlet-api.jar
wrapper.java.classpath.7=C:\daifuku\wms\tomcat\lib\jsp-api.jar


# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=%JAVA_HOME%\jre\lib

# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode.
wrapper.java.additional.auto_bits=TRUE

# Java Additional Parameters
wrapper.java.additional.1=

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=64

# Maximum Java Heap Size (in MB)
#wrapper.java.maxmemory=512

# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=XXX

非常感谢!

最佳答案

所以你基本上是在问当你没有指定 init 和 max memory 时,java 实际分配了哪些 Heap 参数(我相信这会转化为众所周知的 -Xmx-Xms
一般来说,它依赖于系统,算法也改变了很多次,所以可以肯定的是,你实际上应该检查你的系统:

java -XX:+PrintFlagsFinal -version | grep HeapSize // or run you application with that flag if you wish
// or on windows
java -XX:+PrintFlagsFinal -version | findstr HeapSize

然后检查:
  • 初始堆大小
  • 最大堆大小
  • 关于Java 包装器内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610197/

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