Java NoClassDefFoundError:com.opencsv.CSVWriter
我正在尝试使用opencsv库获取加密格式的数据。但在CSV writer上写作时,我得到了“NoClassDefFoundError”。我已经看到了许多与相同错误相关的帖子,并尝试了几乎所有的事情,但仍然无法纠正问题。下面的链接有相同的错误 CSVHelper代码:Java NoClassDefFoundError:com.opencsv.CSVWriter,java,android,csv,encryption,Java,Android,Csv,Encryption,我正在尝试使用opencsv库获取加密格式的数据。但在CSV writer上写作时,我得到了“NoClassDefFoundError”。我已经看到了许多与相同错误相关的帖子,并尝试了几乎所有的事情,但仍然无法纠正问题。下面的链接有相同的错误 CSVHelper代码: public String stringify(List<? extends SerializeableToCSV> objects) throws IllegalArgumentExceptio
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();
}
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:
由于完全相同的错误,我一直在努力用Maven和eclipse设置OpenCSV。最终,我放弃了OpenCSV,使用了ApacheCommons提供的、更容易使用的OpenCSV 使用依赖项更新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 );
}
}
import org.apache.commons.csv.CSVFormat;
导入org.apache.commons.csv.CSVParser;
导入org.apache.commons.csv.CSVRecord;
导入java.io.FileReader;
导入java.io.Reader;
公共类导入文件{
公共静态void main(字符串[]args){
Reader in=新文件读取器(csvFileInput);
CSVParser parser=新的CSVParser(in,CSVFormat.DEFAULT);
List=parser.getRecords();
用于(CSVRecord行:列表)
for(字符串条目:行)
系统输出打印项次(输入);
}
}