Dee*_*Dee 6 java dependencies maven
我正在测试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
}
Run Code Online (Sandbox Code Playgroud)
我已将commons-io添加到依赖项中
的pom.xml
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
它编译但是当我运行它时会引发异常
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
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些事情,你能指点一下吗?
如果它编译正常但在运行时抛出异常,则意味着在编译时依赖关系是在类路径上,而在运行代码时则不是.
Maven负责编译类路径,并确实提供了编译时的依赖性.您必须检查运行应用程序的方式,并确保maven依赖项也在运行时类路径上 - 这与Maven无关,除非您将代码作为单元测试的一部分运行.