簡體   English   中英

讀取大型xls文件時,超出了GC開銷限制

[英]GC overhead limit exceeded when reading large xls file

當我在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

好,我得到了答案...讓我們從頭開始。

的確,Microsoft文檔處理程序的庫需要大量資源,但並不會像我一開始所認為的那樣造成應用程序運行失敗。 實際上,這個問題向我揭示了一個弱點和不足。

由於使用了Netbeans 8.0.2,因此新屬性

app.conf

應該考慮在內。 它具有配置我們的應用程序所需的全部內容。 但是無法直接對其進行編輯,因此要增加最大允許的內存,我們必須更改

線束的/ etc / app.conf

在netbeans安裝目錄中。 有關更多詳細信息,請單擊此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM