原因:java.lang.ClassNotFoundException:org.apache.commons.io.FileUtils
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
我正在测试 maven 及其功能。我正在尝试使用 commons-io
将字符串写入文本文件
import org.apache.commons.io.FileUtils;
...
public void writeToFile(String fileName){
File file = new File(fileName);
...
FileUtils.writeStringToFile(file,rowEntry); //rowEntry is a String
}
我已将 commons-io 添加到依赖项中
POM.xml
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
它编译但是当我运行它
时它抛出一个异常
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
at com.RandCollections.StringFinder.writeToFile(StringFinder.java:704)
at com.RandCollections.StringFinder.menu(StringFinder.java:123)
at com.RandCollections.StringFinderMain.main(StringFinderMain.java:28)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more
我觉得我漏掉了一些东西,你能帮忙指出来吗?
如果它编译正常但在 运行ning 时抛出异常,这意味着依赖项在编译时在类路径上,但在 运行ning 代码时不存在。
Maven负责编译classpath,确实提供了编译时的依赖。您必须检查 运行 应用程序并确保 Maven 依赖项也在 运行time 类路径上 - 这与 Maven 无关,除非您 运行 代码作为单元测试的一部分。
您可以尝试将库添加到您的 class路径
例如:
javac -classpath fileUtillibraywhatever.jar YourClass.java
编辑:
如果您的主要 class 在一个包中
package com.yourpackage.test;
public class YourClass
{}
然后
javac -classpath fileUtillibraywhatever.jar com/yourpackage/test/YourClass.java
和运行
java-class路径fileUtillibraywhatever.jarcom/yourpackage/test/YourClass
希望对您有所帮助..
如果您正在使用 iDE
https://wiki.eclipse.org/FAQ_How_do_I_add_an_extra_library_to_my_project's_classpath%3F
我正在测试 maven 及其功能。我正在尝试使用 commons-io
将字符串写入文本文件import org.apache.commons.io.FileUtils;
...
public void writeToFile(String fileName){
File file = new File(fileName);
...
FileUtils.writeStringToFile(file,rowEntry); //rowEntry is a String
}
我已将 commons-io 添加到依赖项中
POM.xml
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
它编译但是当我运行它
时它抛出一个异常Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
at com.RandCollections.StringFinder.writeToFile(StringFinder.java:704)
at com.RandCollections.StringFinder.menu(StringFinder.java:123)
at com.RandCollections.StringFinderMain.main(StringFinderMain.java:28)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more
我觉得我漏掉了一些东西,你能帮忙指出来吗?
如果它编译正常但在 运行ning 时抛出异常,这意味着依赖项在编译时在类路径上,但在 运行ning 代码时不存在。
Maven负责编译classpath,确实提供了编译时的依赖。您必须检查 运行 应用程序并确保 Maven 依赖项也在 运行time 类路径上 - 这与 Maven 无关,除非您 运行 代码作为单元测试的一部分。
您可以尝试将库添加到您的 class路径 例如:
javac -classpath fileUtillibraywhatever.jar YourClass.java
编辑:
如果您的主要 class 在一个包中
package com.yourpackage.test;
public class YourClass
{}
然后
javac -classpath fileUtillibraywhatever.jar com/yourpackage/test/YourClass.java
和运行
java-class路径fileUtillibraywhatever.jarcom/yourpackage/test/YourClass
希望对您有所帮助.. 如果您正在使用 iDE https://wiki.eclipse.org/FAQ_How_do_I_add_an_extra_library_to_my_project's_classpath%3F