我正在使用eclipse使用POI从Oracle数据库创建excel文件。如果数据集很小没问题。但如果它很大,我们就会遇到异常。
线程“main”中的异常java.lang.OutOfMemoryError:Java堆空间
My heap setting is. -Xms512m -Xmx1024m
如果我将最大尺寸增加到2048米,我们就得到了
Could not create Java Virtual Machine.
错误。感谢
答案 0 :(得分:2)
我认为您需要检查操作系统的容量(32位系统或64位系统)
就我的信息而言:
期望具有单个大块内存的32位JVM不能使用超过4 Gb(因为这是32位限制,也适用于指针)。这包括Sun和 - 我非常确定 - 也是IBM的实现。我不知道是否例如JRockit或其他人拥有32位实现的大内存选项。
如果您希望达到此限制,则应强烈考虑为生产环境启动并行跟踪验证64位JVM,以便在32位环境出现故障时做好准备。否则你将不得不在压力下做这项工作,这永远不会很好。
Extra information:
On normal consumer versions of Windows, the limit is 2GB
which is equivalent to 2048M. On Linux and server versions
of Windows (32-bit)
the limit is 3GB per process.
答案 1 :(得分:0)
我根据指南from解决了这个问题。