程序大致如下
try{
..........
is = new FileInputStream(FileName);
rwb = Workbook.getWorkbook(is);
..........
}catch(Exception e)
{
e.printStackTrace();
}
finally{
.............
}运行到rwb = Workbook.getWorkbook(is);的时候,直接没提示就去finally里面了,运行finally里面的才提示java.lang.OutOfMemoryError.
我是读取一个40多M的Excel表格。另:jxl/work.class里面
public static Workbook getWorkbook(InputStream is) throws IOException, BiffException { return null;}我的虚拟机内存有64M。请问这个异常该怎么避免呢?
try{
..........
is = new FileInputStream(FileName);
rwb = Workbook.getWorkbook(is);
..........
}catch(Exception e)
{
e.printStackTrace();
}
finally{
.............
}运行到rwb = Workbook.getWorkbook(is);的时候,直接没提示就去finally里面了,运行finally里面的才提示java.lang.OutOfMemoryError.
我是读取一个40多M的Excel表格。另:jxl/work.class里面
public static Workbook getWorkbook(InputStream is) throws IOException, BiffException { return null;}我的虚拟机内存有64M。请问这个异常该怎么避免呢?
rwb.close();
}
关了的。
运行时加上参数,指定虚拟机内存看行不行。如
java -Xms256M -Xmx512M yourclass
指定虚拟机内存最大512M,最小256M。
——————————————————————————
if (rwb != null) {
rwb.close();
}
关了的。——————————————————————————
为什么要这样关呢是rwb不等于空的时候就给关闭了?
恩,我设置set JAVA_OPTS=-Xms256m -Xmx768m后,可以运行了。