почему я получаю исключение ClassNotFound при использовании OpenCSV - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь прочитать CSV-файл, используя opencsv, я импортировал все и сослался на библиотеку в classpath, но продолжаю получать ClassNotFoundException:

Вот мой код:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import com.opencsv.CSVReader;

public class Main {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    CSVReader readActors;
    try {
        readActors = new CSVReader(new FileReader(new File("src\\prueba\\actors.csv")));

    String[] values = null;

        try {
            while ((values = readActors.readNext()) != null){
                String name =values[0];
                String bday = values[1];

                System.out.println("Name:" +name+", bday:" +bday); //check if reading is ok
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

Вот исключения, которые я получаю:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils
at com.opencsv.CSVParser.<init>(CSVParser.java:207)
at com.opencsv.CSVReader.<init>(CSVReader.java:198)
at com.opencsv.CSVReader.<init>(CSVReader.java:180)
at com.opencsv.CSVReader.<init>(CSVReader.java:132)
at com.opencsv.CSVReader.<init>(CSVReader.java:72)
at prueba.Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.ObjectUtils
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 6 more

и файл csv выглядит так и находится в пакете 'prueba', а также в классе Main.

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

1 Ответ

2 голосов
/ 07 апреля 2020

Похоже, вам также нужно добавить org.apache.commons.lang3 банку в путь к классам. Может быть, попробуйте этот сайт https://commons.apache.org/proper/commons-lang/download_lang.cgi

...