java opencsv_关于java:使用OpenCSV读取文件

本文讨论了在使用OpenCSV读取CSV文件时遇到的与Java版本兼容性的问题。当从Java 6降级到早期版本时,出现UnsupportedClassVersionError。解决方案包括使用OpenCSV的旧版本(如2.3或2.4),这些版本是用Java 5或6编译的,或者自行下载源码并用Java 6编译。
摘要由CSDN通过智能技术生成

我使用opencv读写csv文件。它运行良好,直到我的HSD安装早期版本的Java -即Java 6。安装后,我的代码停止工作:

Exception in thread"main" java.lang.UnsupportedClassVersionError:

com/opencsv/CSVReader : Unsupported major.minor version 51.0 at

java.lang.ClassLoader.defineClass1(Native Method) at

java.lang.ClassLoader.defineClassCond(Unknown Source) at

java.lang.ClassLoader.defineClass(Unknown Source) at

java.security.SecureClassLoader.defineClass(Unknown Source)

fb5e6adb94aa5394b8f84b888f7e5f1f.png

67c76c6689cdd363c989bb55efaba3c2.png

重复:stackoverflow.com/questions/10382929/…??

检查Opencsv .jar依赖项中类文件的版本,例如:

javap -verbose -cp opencsv.jar com.opencsv.CSVReader | grep major

如果这显示一个版本比50更新(=比Java 6更新),那么您就不能使用这个jar。您需要得到一个用Java 6或更高版本构建的EDCOX1×0文件。(如果它可以用Java 6构建)。

我刚刚确认最新版本的源代码没有用Java 6编译,因为它使用Java 7特性(自然地)。但就在不久前,截至2014年8月,该项目仍在Java 5上。所以,如果您下载一个旧版本的jar,它应该可以工作。

换句话说,因为您降级了Java版本,您还需要降级OpenCSV依赖项。

更新

从SourceForge,版本2.3包含一个适合您的JAR文件:

$ javap -verbose -cp deploy/opencsv-2.3.jar au.com.bytecode.opencsv.CSVReader | grep major

major version: 50

请注意,包名称与当前版本稍有不同。

你能指出一个以前版本的opencv的下载链接吗?我刚安装了2.1,它不能再工作了。

我找到了一个,看我的最新帖子

我也看到了同样的问题。请让我知道OpenCsv的哪一个版本可以与Java版本"1.60Sy22"兼容?Opencsv 2.3不适合我。

尝试2.2或2.4。恐怕2.3可能是无意中用1.7编译的。

谢谢您。。让我试试…

当OpenCsv升级到3时,决定升级到Java 7。这样做有几个原因。最主要的原因是3的主要修复是支持在GRAILS(可能是Java 8)中的LAMBDAS中的懒惰检查,因此请求代码在Java 7中编译,因为它对于GRAIUS更为优化。我之所以允许这一点是因为Oracle已经宣布在2015中放弃Java 7的支持,Java 5和6长期以来一直是不支持的,而且我有少量的电子邮件询问我何时要将OpenCsv移植到Java 7(并且由于某种原因只有一个Java 8),所以我觉得移动到Java 7是安全的。最后一个是我使用Mac开发,不再有机会访问Java 5编译器,而且我真的感觉不好推出Java 5的OpenJSV版本,使用Java 7。

在事后看来,这引起的问题(你是我知道的第三,因为这个原因不能升级),我会把它留在Java 5,并要求GRAILS用户执行性能测试,我自己在我的Mac上的Ubuntu VM上构建OpenCsv。但因为它已经过时了,我不想降级,也可能影响用户。

如果你不能将你的项目升级到Java 7,那么你有两个选项:第一个是在SooCyFrand和Maven存储库上,你可以下载旧版本。因此,2.4和更早使用Java 5构建。另一种选择是您可以下载代码并自己构建它。由于KommradHomer,当前的代码库与Java 6兼容,并且将与Java 6编译器一样构建(您只需要更改POM文件)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值