在java中使用opencsv从csv文件读取数据时出现NoClassDefFoundError和ClassNotFoundException

问题描述 投票:0回答:1

我正在制作一个自动发送电子邮件的应用程序。最初读取 csv 文件,创建 Recipient 类的实例并将其添加到数组列表中。但是,我收到了大量错误,包括 NoClassDefFoundError 和 ClassNotFoundException。

这是我的代码:

import java.util.ArrayList;
import java.util.List;
import java.io.FileReader;
import java.io.IOException;
import com.opencsv.CSVReader;
import com.opencsv.exceptions.CsvException;


public class UserDataLoader {

    private final String url;
    private ArrayList<RECIPIENT> mailingList = new ArrayList<>();

    public UserDataLoader (String url){
        this.url = url;
    }

    public void loadData(){
        try (CSVReader reader = new CSVReader(new FileReader(url))) {
            List<String[]> records = reader.readAll();

            for (int i = 1; i <= records.size(); i++){
                String[] record = records.get(i);
                String name = record[0];
                String emailAddress = record[1];
                String dateOfBirth = record[2];

                RECIPIENT customer = new RECIPIENT(name, emailAddress, dateOfBirth);
                mailingList.add(customer);
    
            }
        
        } catch (IOException | CsvException e) {
            e.printStackTrace();
        }
    }

    public ArrayList<RECIPIENT> getMailinList(){
        return mailingList;
    }


}

具体错误如下: 线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils 在 com.opencsv.CSVParser.(CSVParser.java:110) 在 com.opencsv.CSVReader。(CSVReader.java:99) 在 UserDataLoader.loadData(UserDataLoader.java:19) 在 App.main(App.java:5) 引起原因:java.lang.ClassNotFoundException:org.apache.commons.lang3.ObjectUtils 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ...还有4个

我应该期望不会出现错误,但我不确定这是从哪里来的。我已经下载了opencsv,将其放入vscode中我引用的库中,所有java文件和csv文件都在同一个文件夹中。

java csv file-io opencsv
1个回答
0
投票

将其添加到您的 pom.xml 中

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.