当我在Netbeans IDE中运行我的项目(编译并测试它)时,它运行正常。它使我能够读取大小为25000行的xls文件并提取上面的所有信息,然后将它们保存到数据库中。
生成安装程序并交付时出现问题。当我安装我的应用程序并运行它时,我得到了错误:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at jxl.read.biff.File.read(File.java:217)
at jxl.read.biff.Record.getData(Record.java:117)
at jxl.read.biff.CellValue.<init>(CellValue.java:94)
at jxl.read.biff.LabelSSTRecord.<init>(LabelSSTRecord.java:53)
at jxl.read.biff.SheetReader.read(SheetReader.java:412)
at jxl.read.biff.SheetImpl.readSheet(SheetImpl.java:716)
at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:257)
at com.insy2s.importer.SemapExcelImporter.launchImport(SemapExcelImporter.java:82)
at//staff
我甚至是用户POI库,但我有同样的情况。
更新:
在我的应用程序的 messages.log 文件中,我发现了这些奇怪的值(我在 netbeans.conf 中已更改 )
Input arguments:
-Xms24m
-Xmx64m
-XX:MaxPermSize=256m
-Dnetbeans.user.dir=C:\Program Files\insy2s_semap_app
-Djdk.home=C:\Program Files\Java\jdk1.8.0_05
-Dnetbeans.home=C:\Program Files\insy2s_semap_app\platform
答案 0 :(得分:0)
好的,我得到了答案......让我们从头开始。
微软确实记录了hanlders&#39;库需要很多资源,但不会像我在开始时想到的那样导致应用程序运行失败。事实上,这个问题已经向我揭示了一个弱点和短缺。
由于使用Netbeans 8.0.2,新属性
app.conf
应该考虑在内。它具备配置我们的应用程序所需的所有功能。 但是无法直接编辑它以增加最大允许内存,我们必须更改
中的值线束的/ etc / app.conf
在netbeans安装目录中。有关详细信息,请查看here。