天天看点

java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;V

异常:java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;)V

异常信息:

java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;V

此异常的意思是在:org.apache.commons.io.FileUtils这个类中找不到moveFile方法。

我们点击DiskFileItem.java查看此方法调用位置:

java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;V

此类是官方的类。因此可以想到moveFile这个方法是有的,可以看见下图也是调用的commons.io中的FileUtils类中。所以异常中说找不到此方法是不正常了,博主当时推断可能是commons.io中此方法过时或者高本版新加的。

java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;V

那么我去maven库找到最新的版本:下图中是出现异常的版本,和我在maven库中找到最新的版本

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
           
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>
           

换新版本后,就没有此异常了!

说明推断正确。