跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 idea 启动和 jar 启动 classloader 加载顺序的问题
未分類
19 1 月 2020

关于 idea 启动和 jar 启动 classloader 加载顺序的问题

关于 idea 启动和 jar 启动 classloader 加载顺序的问题

資深大佬 : aragakiyuii 10

工程里引入了某个射频机器的包,可以通过提供的 tcp 或者 serial 方式进行连接。serial 方式依赖于 RXTXcomm 这个包,但是它把这个依赖放到自己的 jar 中了(疑惑

springboot 打成 fat jar 之后大致是这样的

BOOT-INF   -classes   -lib     -xxx.jar       -lib         -RXTXcomm.jar 

tcp 方式

public class Reader {       //这个里面没有用到 RXTXcomm 中的类     public static boolean tcpConnect() {         return doSomething();     } } 

serial 方式

public class Reader {       //这个里面使用了 RXTXcomm 中某些类     public static boolean serialConnect() {  return doSomething();     } } 

我采用了 tcp 方式,通过 idea 启动没什么问题。可是打包成 jar 包启动时就会抛异常

ClassNotFoundException: gnu.io.SerialPortEventListener

我调用的静态方法没有用到SerialPortEventListener这个类,并且 Reader 这个类里定义的全局变量中也没有用到SerialPortEventListener,为什么 idea 启动时不会加载而通过 jar 的方式启动会去加载呢? classloader 不是等到使用到某个类的时候才会去 findClass 嘛?

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具