You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ IDEA中Spring Boot项目出现Apache Tomcat Native库未找到错误

问题描述

在IntelliJ IDEA中开发Java+Spring Boot项目时,突然出现Apache Tomcat Native库未找到的错误,调试输出如下:

12:51:54.926 [restartedMain] DEBUG o.a.c.core.AprLifecycleListener - The Apache Tomcat Native library could not be found using names [tcnative-2, libtcnative-2, tcnative-1, libtcnative-1] on the java.library.path [C:\Program Files\Java\jdk-20\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:.......
    at org.apache.tomcat.jni.Library.<init>(Library.java:91)
    at org.apache.tomcat.jni.Library.initialize(Library.java:147)
    at org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:189)
    at org.apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.java:106)
    at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getDefaultServerLifecycleListeners(TomcatServletWebServerFactory.java:189)

该问题无征兆出现:未添加新依赖、未修改包结构或配置,JAVA_HOME及系统路径均指向64位Java,系统为64位,从未使用过32位版本。

已知该问题通常不影响程序功能,但希望在不直接指定DLL库的前提下解决。已尝试过类似问题的常见解决方案(包括Asif Kamran Malick的方案),均无效。

可能原因与解决方法

可能原因

  • Tomcat嵌入式版本依赖变更:Spring Boot自动管理的Tomcat依赖可能在某次自动更新(如IDEA依赖刷新、Maven/Gradle快照更新)中,引入了需要APR库的版本,但本地环境未配套。
  • java.library.path隐式变更:系统环境变量或IDEA运行配置中,java.library.path被意外修改,导致原本存在的库路径被移除。
  • 缓存或依赖冲突:Maven/Gradle本地缓存中存在损坏的Tomcat相关依赖,导致APR监听器被错误加载。

解决方法

1. 禁用Tomcat APR监听器

在Spring Boot配置中直接禁用APR,从根源消除错误:

  • 若使用application.properties,添加:
server.tomcat.use-apr=false
  • 若使用application.yml,添加:
server:
  tomcat:
    use-apr: false

2. 强制锁定Tomcat版本

如果是依赖版本变更导致问题,在构建文件中明确指定Tomcat版本,避免自动更新到需要APR的版本:

  • Maven(pom.xml):
<properties>
    <tomcat.version>9.0.80</tomcat.version> <!-- 替换为之前正常运行的Tomcat版本 -->
</properties>
  • Gradle(build.gradle):
ext['tomcat.version'] = '9.0.80'

3. 清理并重新加载依赖

  • 清理本地构建缓存:
    • Maven执行:mvn clean install -U
    • Gradle执行:gradle clean build --refresh-dependencies
  • 在IntelliJ IDEA中执行File -> Invalidate Caches...,选择清除缓存并重启IDEA。

4. 检查并修复java.library.path

  • 查看IDEA运行配置中的VM options,确认是否有修改java.library.path的参数,若有则移除或修正。
  • 检查系统环境变量PATH,确保包含Tomcat Native库可能存在的路径(若之前安装过相关库),无需手动指定DLL,仅保证路径配置正确。

内容的提问来源于stack exchange,提问作者Romul Fobos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 07:19:57