最近,我开始使用我以前的同事设计的Java应用程序。执行某些操作后,应用程序冻结,error.log文件显示以下内容:
Exception in thread "Thread-4" java.lang.OutOfMemoryError: Java heap space
at org.apache.poi.poifs.storage.BATBlock.<init>(BATBlock.java:57)
at org.apache.poi.poifs.storage.BATBlock.<init>(BATBlock.java:210)
at org.apache.poi.poifs.storage.BATBlock.createBATBlocks(BATBlock.java:87)
at org.apache.poi.poifs.storage.BlockAllocationTableWriter.simpleCreateBlocks(BlockAllocationTableWriter.java:150)
at org.apache.poi.poifs.storage.BlockAllocationTableWriter.createBlocks(BlockAllocationTableWriter.java:103)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.writeFilesystem(POIFSFileSystem.java:221)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:744)
at net.ndmystko.qa.QAJobReporter.writeWorkbook(QAJobReporter.java:478)
at net.ndmystko.qa.QAJobReporter.writeResults(QAJobReporter.java:458)
at net.ndmystko.qa.QAJobReporter.writeResults(QAJobReporter.java:402)
at net.ndmystko.qa.QA.displayEvolutionProgress(QA.java:1257)
at net.ndmystko.qa.QA.access$9(QA.java:1186)
at net.ndmystko.qa.QA$4.actionPerformed(QA.java:1176)
at net.ndmystko.analysis.evolution.Evolution.run(Evolution.java:191)
我已经读过,我需要增加分配给应用程序的堆大小。但是,我不知道如何实现这一点,或者我可以输入所需的代码。任何帮助将不胜感激。
注意:我没有编程经验。我从.bat文件运行程序。
答案 0 :(得分:3)
您可以使用以下Java命令行参数
-Xms: initial heap size
-Xmx: Maximum heap size
运行应用程序时设置它,例如
java -Xmx1024m YourClass
用于分配1024 MB
java -Xmx2g YourClass
用于分配2 GB
编辑:关于你的注释,java命令可能在.bat文件中。所以你应该打开它,找到java命令并在那里添加命令行参数。