iteye_12562 2009-03-04 16:15
浏览 194
已采纳

jxl读取一个7M的Excel文件内存益出,网上找遍也找不到解决方案

jxl读取一个7M的Excel文件内存益出,网上找遍也找不到解决方案

根据客户要求,需要把Excel里的企业证书信息导入到数据库去,我用jxl读取这个EXCEL,然后报错。
如:


Exception in thread "main" java.lang.OutOfMemoryError: Java heap space


这个时候我就有点郁闷了,一开始还以为是eclipse JVM内存不够,然后改了一下eclipse.ini的内存

-vmargs
-Xms200m
-Xmx600m
-XX:PermSize=64M
-XX:MaxPermSize=128M


然后再运行,还是内存溢出,然后我看了一下文件,这个EXCEL文件有7M多,我删除了一部分数据,变成4M多,然后再运行程序,还是内存溢出,接着我换了一个小文件试,运行结果是没有报错。

所以问题出在EXCEL文件太大,但是有没有办法解决这个java.lang.OutOfMemoryError问题吗?

程序代码:

public class ReadExcel {
public void readExcelBook()
{
    // 我们先想想一下读取步骤,不管是什么样的Excel操作框架必定都要经历
    // 1选取Excel文件,2选择工作簿,3选择Cell,4读取信息。
    try {
        ////通过Workbook的静态方法getWorkbook选取Excel文件
        Workbook book = Workbook.getWorkbook(new File(this.getClass().getResource("/").getPath() + "Book2.xls"));
        // //通过Workbook的getSheet方法选择第一个工作簿(从0开始)
        Sheet sheet = book.getSheet(0);
        ////通过Sheet方法的getCell方法选择位置为C2的单元格(两个参数都从0开始)
        Cell cell = sheet.getCell(1, 1);
        // 通过Cell的getContents方法把单元格中的信息以字符的形式读取出来
        String con = cell.getContents();
        System.out.println(con);

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

}

public static void main(String[] args) {

    ReadExcel read = new ReadExcel();
    read.readExcelBook();
}

}


问题补充
我晕,尽然没有人回贴,也没有人知道?
问题补充:
晕,你设置eclipse.ini又没用的。
eclipse在运行一个java main程序时是但如给起了一个jvm,你所要做是设置 run configures->arguments->vm arguments, 把那些啥Xms Xmx设置下,这样才有用
agapple (初级程序员) 2009-03-05

不好意思啊,设置了也没有用
  • 写回答

1条回答 默认 最新

  • iteye_7245 2009-03-05 09:42
    关注

    晕,你设置eclipse.ini又没用的。
    eclipse在运行一个java main程序时是但如给起了一个jvm,你所要做是设置 run configures->arguments->vm arguments, 把那些啥Xms Xmx设置下,这样才有用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?