6

好的,所以我最近搬到了一台全新安装 Win7 Pro 的新电脑

我从旧 PC 复制了所有旧文件和文件夹

我将 Tomcat 7 文件复制到新 PC

但是现在当我尝试启动它时,我得到了这个错误

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8080-exec-2"

我到处寻找解决方案,发现了数百种不同的解决方案,但没有一个对我有帮助

任何想法可能导致此错误?(我正在使用从旧 PC 复制的完全相同的 tomcat 文件和在旧 PC 上仍然有效的完全相同的项目)

笔记:

我已经像在旧计算机上一样设置了环境变量。

我正在使用与我在以前的 PC 上使用多年的完全相同的 web 应用程序(所以它不能是内存泄漏或项目有问题)

4

6 回答 6

8

我收到了相同的错误消息,尽管来自网络上的其他来源的错误消息可能是由于堆空间不足而发生的,而不仅仅是因为 permgen 空间不足。

我需要从命令行解决这个问题,而不是使用图形界面。为此,我添加了一个新文件,<tomcat install directory>/bin/setenv.sh其中包含以下内容:

CATALINA_OPTS="-Xms4096M -Xmx4096M -XX:PermSize=512M -XX:MaxPermSize=512M"

如果您有现有setenv.sh文件,请将其添加到该文件中。使用适合您的安装的任何数字——我的服务器有 96GB 内存,所以我可以为 Tomcat 买 4GB。

如 中所述catalina.sh,您应该将其添加到setenv.sh而不是添加到,以便将此本地修改与基本脚本catalina.sh分开。catalina.sh您应该更改CATALINA_OPTS而不是JAVA_OPTS只为实际的 Tomcat 服务器需要更大的内存量;更改JAVA_OPTS也将需要用于关闭过程的内存,如果系统内存不足,这可能会干扰服务器的关闭。

于 2014-03-29T10:11:45.243 回答
4

我终于找到了答案:

转到您的 tomcat bin 文件夹

以管理员身份运行“tomcat7w.exe”

将此添加到 Java 选项卡中的 java 选项中

-Xms3072M
-Xmx6144M
-XX:PermSize=512m
-XX:MaxPermSize=1024m

有关更多信息,请查看此链接

http://community.jaspersoft.com/wiki/configuring-tomcats-java-heap-size

于 2013-11-05T08:42:57.633 回答
1

我通过仅在 Windows 7 tomcat 7 中的 catalina.bat 中添加以下行来解决同样的问题。

set JAVA_OPTS =" -XX:PermSize=512m -XX:MaxPermSize=1024m" 

我有 4 GB 内存。

于 2014-08-25T09:44:03.320 回答
0

您可以将它们分配给JAVA_OPTS位于catalina.sh(tomcatPath/bin) 内部的变量:

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-server -Xms1536m -Xmx1536m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m 
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"

另一种可能是内存泄漏。您可以在此处查看以解决内存泄漏问题

于 2013-11-04T14:21:01.813 回答
0

经过多次搜索,我找到了这个解决方案。它工作正常。

在“setenv”批处理文件中使用“set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xms128m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m”设置 JAVA_OPTS=%JAVA_OPTS%”,该批处理文件将位于以下路径中

\jasperreports-server-cp-5.6.0\apache-tomcat\bin

于 2015-01-08T15:10:44.933 回答
0

我能够使用此处的建议来调试在运行 Eclipse 插件单元测试时 Travis CI 内存不足的问题。我必须设置 MaxPermSize,我通过将以下内容添加到我的 java ant 任务中来做到这一点:

<jvmarg line="-Xms40m -Xmx1024m -XX:MaxPermSize=512m"/>
于 2015-03-06T13:51:57.990 回答