天天看點

maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets

今天從git上down了一個第三方jar ,這個jar裡面用到了

然而執行到這裡的時候,就報錯了:

java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets

第一反應就是jar包沖突了,看了下依賴,果然是有問題,如圖所示:

common-fileupload 1.3.1的版本依賴的commons-io 2.2,而第三方jar依賴的是common-io 2.4

maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets

于是果斷的:

發現并不管用,于是跟蹤源碼進去看看,看這個Charsets類到底是在哪個包下面:

源碼裡面引入的是:

import org.apache.commons.io.Charsets;

而common-io 2.2下面是沒有這個Charsets的,commons-io-2.5 下面就有了這個類

maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets
maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets

于是打算更新common-io的版本,

maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets

看了下 這個common-fileupload-1.3.2 依賴的common-io的版本已經升到2.5了。

是以問題得以解決。