繁体   English   中英

NoClassDefFoundError:com.opencsv.CSVWriter

[英]NoClassDefFoundError: com.opencsv.CSVWriter

我尝试使用opencsv libray获取加密的格式数据。 但是当在CSV编写器上编写时,我收到“ NoClassDefFoundError”。 我已经看到很多帖子都与相同的错误相关,并且几乎也尝试了所有操作,但是仍然无法解决问题。 下面的链接具有相同的错误。

csv说明1

csv说明2

CSVHelper代码:

public String stringify(List<? extends SerializeableToCSV> objects) 
        throws IllegalArgumentException {

    if (objects == null || objects.isEmpty()) 
        throw new IllegalArgumentException("List of objectes passed is either null or empty");

    List<String[]> strList = new ArrayList<String[]>();

    // add header record
    strList.add(objects.get(0).getColumnHeaders());

    Iterator<? extends SerializeableToCSV> it = objects.iterator();
    while (it.hasNext()) {
        SerializeableToCSV element = it.next();
        strList.add(element.getValueList());
    }

    StringWriter writer = new StringWriter();
    CSVWriter csvWriter = new CSVWriter(writer, CSVHelper.VALUE_SEPERATOR, CSVWriter.NO_QUOTE_CHARACTER);
    csvWriter.writeAll(strList);

    try {
        csvWriter.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return writer.toString();
}

在此处输入图片说明

我的libs文件夹中所有打开的csv库内容。

错误日志:

04-14 16:03:09.260: E/AndroidRuntime(13047): java.lang.NoClassDefFoundError: com.opencsv.CSVWriter
04-14 16:03:09.260: E/AndroidRuntime(13047):    at com.stellapps.encryption.CSVHelper.stringify(CSVHelper.java:62)
04-14 16:03:09.260: E/AndroidRuntime(13047):    at com.stellapps.encryption.Csv.createCSVString(Csv.java:62)
04-14 16:03:09.260: E/AndroidRuntime(13047):    at com.stellapps.encryption.Csv.generateCsvEncryptedFormat(Csv.java:111)

如果需要其他详细信息,请告诉我。 任何帮助将不胜感激。

我要添加的另一件事是,在获得上述异常之前,在错误下方。

找不到从方法com.example.encryption.CSVHelper.parse引用的类'com.opencsv.bean.HeaderColumnNameTranslateMappingStrategy'

它提供错误的类可能存在于类路径中,但是您需要的jar可能具有某些依赖关系。

请找到下面的链接以检查依赖项并添加依赖的jar: http : //opencsv.sourceforge.net/dependencies.html

由于完全相同的错误,我一直在努力用Maven和eclipse设置OpenCSV。 最终,我放弃了OpenCSV, 转而使用CSVParser ,它可以从Apache Commons获得,并且工作起来更加容易。

使用此处列出的依赖项更新您的POM,以下各项将立即可用:

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.FileReader;
import java.io.Reader;

public class importFile {
    public static void main(String[] args) {
        Reader in = new FileReader( csvFileInput );
        CSVParser parser = new CSVParser( in, CSVFormat.DEFAULT );
        List<CSVRecord> list = parser.getRecords();

        for( CSVRecord row : list )
            for( String entry : row )
                System.out.println( entry );
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM