POI生成(Excel 2007).xlsx文件时报“java.lang.NoSuchMethodError”错误的解决
2016-07-20 11:52
489 查看
概述:本文主要讲了笔者在MyEclipse 8.6平台下利用POI生成.xlsx文件时报“java.lang.NoSuchMethodErrorjavax.xml.stream.XMLEventFactory.newFactory()LjavaxxmlstreamXMLEventFactory”错误的问题的解决。笔者从stackoverflow得知Apache POI生成.xlsx文件的前提条件是Java版本不低于1.6.0_18,由于MyEclipse8.6默认的JRE版本是1.6.0_13,笔者将JRE版本改到了1.7.0_80,可结果还是出现原来的错误。从朋友得知,在JRE和Jar包相同的情况下,新版的MyEclipse
10可以解决该问题。于是改用MyEclipse 10,问题解决。尽管如此,笔者暂时搞不清为何在运行环境、编译器版本、Jar包相同的情况下,不同版本的MyEclipse会有不同的效果,希望知道原理的朋友留言反馈,也可以给大家一个参考,节省大家时间精力。
下面详细描述一下解决问题的过程。
1. 运行环境:
IDE:MyEclipse 8.6
JRE版本:1.6.0_13
引用Jar包:
(POI相关)
poi-3.11-20141221.jar
poi-ooxml-3.11-20141221.jar
poi-ooxml-schemas-3.11-20141221.jar
xmlbeans-2.6.0.jar
(Junit相关)
hamcrest-core-1.3.jar
junit-4.12.jar
2. Java代码:
3. 运行程序时报NoSuchMethodError错误:
4. 虽然修改了JRE,程序依旧报错:
5. 改用MyEclipse 10 版本程序顺利运行:
本文为“叶子竹”原创作品,转载请注明“叶子竹”及本文所在链接,谢谢!
叶子竹的微信公众号
引:
[1] stackoverflow上关于使用POI产生NoSuchMethodError问题的解答:
http://stackoverflow.com/questions/26866398/nosuchmethoderror-in-main-thread-while-reading-xlsx-using-apache-poi
10可以解决该问题。于是改用MyEclipse 10,问题解决。尽管如此,笔者暂时搞不清为何在运行环境、编译器版本、Jar包相同的情况下,不同版本的MyEclipse会有不同的效果,希望知道原理的朋友留言反馈,也可以给大家一个参考,节省大家时间精力。
下面详细描述一下解决问题的过程。
1. 运行环境:
IDE:MyEclipse 8.6
JRE版本:1.6.0_13
引用Jar包:
(POI相关)
poi-3.11-20141221.jar
poi-ooxml-3.11-20141221.jar
poi-ooxml-schemas-3.11-20141221.jar
xmlbeans-2.6.0.jar
(Junit相关)
hamcrest-core-1.3.jar
junit-4.12.jar
2. Java代码:
package cn.test; importjava.io.FileOutputStream; importorg.apache.poi.xssf.usermodel.XSSFCell; importorg.apache.poi.xssf.usermodel.XSSFRow; importorg.apache.poi.xssf.usermodel.XSSFSheet; importorg.apache.poi.xssf.usermodel.XSSFWorkbook; importorg.junit.Test; public class TestPOI2Excel { //07版本Excel的导入 @Test public void testWrite07Excel() throws Exception { //System.out.println(Runtime.class.getPackage().getImplementationVersion()); // 1、创建工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 2、创建工作表 XSSFSheet sheet = workbook.createSheet("hello world"); // 指定工作表名称 // 3、创建行;创建第3行 XSSFRow row = sheet.createRow(2); // 4、创建单元格;创建第3行第3列 XSSFCell cell = row.createCell(2); cell.setCellValue("hello world"); // 输出到硬盘 FileOutputStream outputStream = new FileOutputStream( "D:\\yzz\\测试.xlsx"); // 把excel输出到具体地址 workbook.write(outputStream); workbook.close(); outputStream.close(); } }
3. 运行程序时报NoSuchMethodError错误:
4. 虽然修改了JRE,程序依旧报错:
5. 改用MyEclipse 10 版本程序顺利运行:
本文为“叶子竹”原创作品,转载请注明“叶子竹”及本文所在链接,谢谢!
叶子竹的微信公众号
引:
[1] stackoverflow上关于使用POI产生NoSuchMethodError问题的解答:
http://stackoverflow.com/questions/26866398/nosuchmethoderror-in-main-thread-while-reading-xlsx-using-apache-poi
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 【CF 应用开发大赛】IT Share(IT分享网)
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序