为什么在使用OpenCSV时会出现’ClassNotFound’异常?

huangapple go评论105阅读模式
英文:

why do i get 'ClassNotFound' exception when using OpenCSV

问题

这是我翻译好的内容:

  1. 我正在尝试使用opencsv读取CSV文件我已经导入了所有内容并将库引用到了类路径中但是我一直在收到ClassNotFoundException错误
  2. 以下是我的代码
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8. import com.opencsv.CSVReader;
  9. public class Main {
  10. public static void main(String[] args) {
  11. // TODO Auto-generated method stub
  12. CSVReader readActors;
  13. try {
  14. readActors = new CSVReader(new FileReader(new File("src\\prueba\\actors.csv")));
  15. String[] values = null;
  16. try {
  17. while ((values = readActors.readNext()) != null){
  18. String name =values[0];
  19. String bday = values[1];
  20. System.out.println("Name:" +name+", bday:" +bday); //check if reading is ok
  21. }
  22. } catch (IOException e) {
  23. // TODO Auto-generated catch block
  24. e.printStackTrace();
  25. }
  26. } catch (FileNotFoundException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. }
  31. }
  32. 以下是我收到的异常
  33. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils
  34. at com.opencsv.CSVParser.<init>(CSVParser.java:207)
  35. at com.opencsv.CSVReader.<init>(CSVReader.java:198)
  36. at com.opencsv.CSVReader.<init>(CSVReader.java:180)
  37. at com.opencsv.CSVReader.<init>(CSVReader.java:132)
  38. at com.opencsv.CSVReader.<init>(CSVReader.java:72)
  39. at prueba.Main.main(Main.java:20)
  40. Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.ObjectUtils
  41. at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
  42. at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
  43. at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
  44. ... 6 more
  45. CSV文件的内容如下同样位于'prueba'包中以及Main
  46. Margot Robbie,02/07/1990
  47. Leonardo DiCaprio,11/11/1974
  48. Brad Pitt,18/12/1963
英文:

I'm trying to read a CSV file using opencsv, I have imported everything and referenced the library in the classpath but i keep getting the ClassNotFoundException:

Here's my code:

  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import com.opencsv.CSVReader;
  7. public class Main {
  8. public static void main(String[] args) {
  9. // TODO Auto-generated method stub
  10. CSVReader readActors;
  11. try {
  12. readActors = new CSVReader(new FileReader(new File(&quot;src\\prueba\\actors.csv&quot;)));
  13. String[] values = null;
  14. try {
  15. while ((values = readActors.readNext()) != null){
  16. String name =values[0];
  17. String bday = values[1];
  18. System.out.println(&quot;Name:&quot; +name+&quot;, bday:&quot; +bday); //check if reading is ok
  19. }
  20. } catch (IOException e) {
  21. // TODO Auto-generated catch block
  22. e.printStackTrace();
  23. }
  24. } catch (FileNotFoundException e) {
  25. // TODO Auto-generated catch block
  26. e.printStackTrace();
  27. }
  28. }
  29. }

Here are the exceptions I'm getting:

  1. Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils
  2. at com.opencsv.CSVParser.&lt;init&gt;(CSVParser.java:207)
  3. at com.opencsv.CSVReader.&lt;init&gt;(CSVReader.java:198)
  4. at com.opencsv.CSVReader.&lt;init&gt;(CSVReader.java:180)
  5. at com.opencsv.CSVReader.&lt;init&gt;(CSVReader.java:132)
  6. at com.opencsv.CSVReader.&lt;init&gt;(CSVReader.java:72)
  7. at prueba.Main.main(Main.java:20)
  8. Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.ObjectUtils
  9. at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
  10. at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
  11. at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
  12. ... 6 more

and the csv file looks like this and is located in the package 'prueba' as well as the Main class.

  1. Margot Robbie,02/07/1990
  2. Leonardo DiCaprio,11/11/1974
  3. Brad Pitt,18/12/1963

答案1

得分: 2

看起来您还需要将 org.apache.commons.lang3 的 JAR 包添加到类路径中。也许可以尝试访问这个网站:https://commons.apache.org/proper/commons-lang/download_lang.cgi

英文:

Looks like you also need to add org.apache.commons.lang3 jar to the classpath. Maybe try this site https://commons.apache.org/proper/commons-lang/download_lang.cgi

huangapple
  • 本文由 发表于 2020年4月7日 05:46:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/61069458.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定