Tomcat10 无法启动 bootstrap.jar 未找到

Tomcat10 cannot start bootstrap.jar not found

我用 java 15 编译了一个 Servlet 并尝试用 Tomcat 10 运行 它但是得到了错误:

"java.lang.UnsupportedClassVersionError: Servlet1 已由更新版本的 Java 运行时编译"

查看 Tomcat 属性,我注意到 Tomcat 使用 Java 8,它也安装在我的 PC 上。

所以我去了Java选项卡下的Tomcat属性并放下jdk-15.0.1\bin\jvm.dll -> Tomcat 不再启动了。

我注意到在 Java 选项卡下的相同属性中,有“Java Classpath”,但它的值是 Tomcat-Dir\bin\bootstrap.jar(我认为)。然后我将其更改为 jdk-15.0.1\bin(及其变体)。

现在我的问题 - Tomcat 不再启动“ClassNotFoundException ... Bootstrap”我可以通过选中“使用默认值”来更改回 JVM 的路径,但我没有记住“Java Classpath”下的路径。谁能告诉我 Tomcat10 的默认值是多少?我希望至少能够重新开始 Tomcat。

I'm talking about this Tab in the Tomcat properties

您所描述的问题(服务立即启动失败,Tomcat 的日志中没有任何内容,commons-daemon.log 中只有一条短线)发生在 [=] 的架构不匹配时21=](在 Tomcat 安装中安装为 bin\tomcat10.exe)和 jvm.dll 的体系结构:32 位可执行文件无法加载 64 位库,反之亦然。

您可以通过 tomcat10.exe version(仅在管理员 cmd 中有效)和 java -version.

进行确认

要解决此问题,您需要为 Windows 下载完整的 Apache Commons Daemon 分发版(参见 download area),并将 tomcat10.exe 替换为适当的 prunsrv.exe 可执行文件( zip 存档中有两个版本。

关于哪些库应该在 Tomcat 的类路径中,您只需要在服务器的安装文件夹中有 bin\bootstrap.jarbin\tomcat-juli.jar

备注:Tomcat 的 Windows MSI 安装程序包含两个 prunsrv.exe 版本,但根据Java 您在安装过程中选择的可执行文件。可能你有一个 32 位 Java 8 和 64 位 Java 15。长期以来 java.com 页面自动建议 Java 的 32 位版本。