当前位置: 首页 > java >正文

java -jar命令运行 jar包时如何运行外部依赖jar包

java -jar命令运行 jar包时如何运行外部依赖jar包

场景:

打包发不完,运行时。发现一个问题,

java java.lang.NoClassDefFoundError: org/apache/commons/lang3/ArrayUtils

显示此,基本表明,没有这个依赖,如果在开发中,在maven的pom.xml 中引入即可;

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version> <!-- 使用最新版本或适合你项目的版本 -->
</dependency>

但是;此时只有jar包,无法修改代码。如何解决呢?

解决:

直接在java -jar test.jar 时,添加参数。

方法一、启动参数添加: -Xbootclasspath/a

java -Xbootclasspath/a:custom-rt.jar -jar test.jar

方法二、使用Extension Classloader来加载

要让Extension Classloader加载你的类,需要:

  1. 将你的JAR文件放入:

    • <JAVA_HOME>/jre/lib/ext目录(JDK 8及之前)
    • 或由java.ext.dirs系统属性指定的目录
  2. 或者运行时指定扩展目录:

    java -Djava.ext.dirs=/path/to/your/extensions -jar test.jar
    

此时此景,只能采用2;值的注意的注意⚠️的是;

使用java.ext.dirs,需要同时添加 <JAVA_HOME>/jre/lib/ext 和你自己的目录,不然只能使用你自己的目录。

实际语句:
java -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:/tmp/lib/  -jar test.jar
http://www.xdnf.cn/news/6583.html

相关文章:

  • IEEE 列表会议第五届机器人、自动化与智能控制国际会议
  • python怎么将函数设置为保护状态
  • Suna: 开源多面手 AI 代理
  • MySQL数据库——支持远程IP访问的设置方法总结
  • LLM学习笔记(六)线性代数
  • 04、基础入门-SpringBoot官方文档架构
  • 代理(主要是动态)和SpringAOP
  • Hue面试内容整理-Hue 架构与前后端通信
  • pytorch 14.3 Batch Normalization综合调参实践
  • SearxNG本地搜索引擎
  • Java并发编程核心组件简单了解
  • 日志与策略模式
  • 正向代理和反向代理的区别?
  • LabVIEW图像粒子处理
  • 【LeetCode 热题 100】5. 最长回文子串(Python中心扩展法详解)
  • IOP出版|第二届人工智能、光电子学与光学技术国际研讨会(AIOT2025)
  • CCIE与HCIE哪个考试难度更大?
  • 如何将数据从一部手机传输到另一部手机 | 5 种便捷传输方式
  • 无人机减震模块运行与技术要点分析!
  • 关于 TCP 端口 445 的用途以及如何在 Windows 10 或 11 上禁用它
  • 深入 Linux 内核:GPU Runtime Suspend 源码和工作流程全面分析
  • 若依框架Consul微服务版本
  • [原创](计算机数学): 生日概率问题.
  • 电子电器架构 --- Zonal架构正在开创汽车电子设计新时代
  • 小刚说C语言刷题—1700请输出所有的2位数中,含有数字2的整数
  • 天能股份SAP系统整合实战:如何用8个月实现零业务中断的集团化管理升级
  • 升级kafka4.0.0,无ZK版本
  • android 安装openwrt 安正步骤
  • Android trace中CPU的RenderThread与GPU
  • 4.6. 暂退法(Dropout)笔记