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

如何排除JRE中的指定Jar,仅加载Spring Boot War依赖的Jar?

解决Java ext目录Jar与Spring Boot War包Jar冲突的方法

以下几种方案可以帮你实现只加载War包内的Jar,排除JRE ext目录的冲突Jar:

  • 临时应急方案(单应用生效)
    启动应用时添加JVM参数,直接禁用JRE ext目录的加载:

    java -Djava.ext.dirs= -jar your-app.war
    

    如果是部署在Tomcat容器,修改catalina.sh(Linux)或catalina.bat(Windows),在JAVA_OPTS中加入该参数:

    # Linux示例
    JAVA_OPTS="-Djava.ext.dirs= $JAVA_OPTS"
    

    注意:这个操作会完全禁用JRE的ext目录,同一JVM下如果有其他依赖ext目录的应用,会受影响,仅适合临时测试或单应用环境。

  • 彻底根治方案
    直接删除Java ext目录下的冲突Jar。既然这个Jar已经包含在你的War包中,ext目录里的手动添加版本完全没有保留的必要,删除后从根源上避免冲突,这是最推荐的做法。

  • 容器级配置(Tomcat部署场景)
    如果无法删除ext目录的Jar,可以修改Tomcat的conf/catalina.properties,调整类加载顺序,让War包内的Jar优先级更高:
    找到common.loader配置项,移除其中指向java.ext.dirs的部分,修改后类似:

    common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"
    

    这样Tomcat会优先加载WEB-INF/lib下的Jar,跳过ext目录的冲突文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:42:03