launch4j: java.lang.OutOfMemoryError: GC overhead limit exceeded
launch4j: java.lang.OutOfMemoryError: GC overhead limit exceeded
我将 poi-4.1.1.jar 和所有库添加到我的 java 项目中以读取 .xlsm 文件。
修改代码后,我可以在 Eclipse 中编译并 运行 它没有任何问题。
I export > Runnable JAR file > Extract required libraries into generated JAR;得到一个 jar 文件。然后用 launch4j 制作一个 exe 并测试包装器,当它读取 .xlsm 文件时它不起作用(参见日志)
使用命令行启动 jar 文件 java -jar foo.jar
完美无缺
我不使用 maven 或 ant。
我搜索了很长时间,这个错误有几个问题,但没有任何帮助。.xls 和 .xlsm 文件的数据量是相同的。使用较旧的 poi 库生成 exe 多次
Executing: D:\foo.exe
log4j:WARN No appenders could be found for logger (bar).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "Thread-5" java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3044)
at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3065)
at org.apache.xmlbeans.impl.store.Locale$SaxHandler.startElement(Locale.java:3216)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3422)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1272)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1259)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
at org.openxmlformats.schemas.spreadsheetml.x2006.main.WorksheetDocument$Factory.parse(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:226)
at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:218)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.parseSheet(XSSFWorkbook.java:448)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:413)
at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:184)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:282)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:303)
at doImport(ImporterMain.java:249)
at ImporterMain.run(ImporterMain.java:211)
at java.lang.Thread.run(Unknown Source)
- 我是否必须检查代码并删除注释或未使用的代码?
- 我在哪里可以看到 GC 限制是多少?
- 在哪里可以适配?
- log4j 警告是什么?如何附加记录器?
感谢各位菜鸟-java-程序员的指教
干杯,
终于可以解决了
我正在为我的 launch4j 应用程序使用配置文件,以便每次生成 exe 时都具有相同的配置。
我错过了,在 launch4j 的选项卡 "JRE" 中,垃圾收集器被定义为 -Xmx300m。
将垃圾收集器增加到 -Xmx1g 解决了问题,我的 exe 现在运行良好。
我将 poi-4.1.1.jar 和所有库添加到我的 java 项目中以读取 .xlsm 文件。 修改代码后,我可以在 Eclipse 中编译并 运行 它没有任何问题。
I export > Runnable JAR file > Extract required libraries into generated JAR;得到一个 jar 文件。然后用 launch4j 制作一个 exe 并测试包装器,当它读取 .xlsm 文件时它不起作用(参见日志)
使用命令行启动 jar 文件 java -jar foo.jar
完美无缺
我不使用 maven 或 ant。
我搜索了很长时间,这个错误有几个问题,但没有任何帮助。.xls 和 .xlsm 文件的数据量是相同的。使用较旧的 poi 库生成 exe 多次
Executing: D:\foo.exe
log4j:WARN No appenders could be found for logger (bar).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "Thread-5" java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3044)
at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3065)
at org.apache.xmlbeans.impl.store.Locale$SaxHandler.startElement(Locale.java:3216)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3422)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1272)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1259)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
at org.openxmlformats.schemas.spreadsheetml.x2006.main.WorksheetDocument$Factory.parse(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:226)
at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:218)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.parseSheet(XSSFWorkbook.java:448)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:413)
at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:184)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:282)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:303)
at doImport(ImporterMain.java:249)
at ImporterMain.run(ImporterMain.java:211)
at java.lang.Thread.run(Unknown Source)
- 我是否必须检查代码并删除注释或未使用的代码?
- 我在哪里可以看到 GC 限制是多少?
- 在哪里可以适配?
- log4j 警告是什么?如何附加记录器?
感谢各位菜鸟-java-程序员的指教
干杯,
终于可以解决了
我正在为我的 launch4j 应用程序使用配置文件,以便每次生成 exe 时都具有相同的配置。 我错过了,在 launch4j 的选项卡 "JRE" 中,垃圾收集器被定义为 -Xmx300m。
将垃圾收集器增加到 -Xmx1g 解决了问题,我的 exe 现在运行良好。