I created a maven project and add a dependency apache commons-io in pom.xml file.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
I added dependency common-io so I can use commons.io.IOUtils in my project in order to read the file from the resource folder.
/src/main/resources/file/file.txt
.
Everything works during compiling and packaging but when I run the jar
java -cp target/maven-1.0-SNAPSHOT.jar com.sample.exercise.Main
I'm getting this error
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
at com.sample.exercise.Main.getFileWithUtil(Main.java:21)
at com.sample.exercise.Main.main(Main.java:13)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils
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)
... 2 more
Here's my code
package com.sample.exercise;
import java.io.*;
import java.util.*;
import org.apache.commons.io.IOUtils;
public class Main{
public static void main(String[] args) {
Main main = new Main();
System.out.println(main.getFile("file/fileTable.txt"));
}
private String getFileString fileName) {
String result = "";
ClassLoader classLoader = getClass().getClassLoader();
try {
result =IOUtils.toString(classLoader.getResourceAsStream(fileName));
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
What is the problem. can you help me with this? TIA