【发布时间】:2015-02-03 07:39:20
【问题描述】:
我一直在努力寻找这个问题的答案,但还是找不到。
我有一台具有 256 GB RAM 的 64 位机器。
我正在尝试执行一个链接到 MySQL 的 Java 程序。它需要一个安静的大堆大小,因为当我在几分钟后使用 VM 参数 -Xmx1024m 时,会弹出:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
但是,当我尝试将程序VM参数设置为-Xmx2048m或更大时,它不起作用并说:
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
我读到设置 -Xmx2048 对于 64 位机器来说不是问题,但我真的不知道为什么它在我的机器上不起作用。
java -version 输出:
wmic OS 获取 FreePhysicalMemory /Value 输出:
FreePhysicalMemory=251663664
wmic computersystem 获取 TotalPhysicalMemory 输出:
TotalPhysicalMemory
274811621376
wmic os 获取 osarchitecture 输出
OSArchitecture
64-bit
我无法执行systeminfo|find "Memory",因为它说语法错误。我也不知道为什么。
【问题讨论】:
-
你的命令行中
java -version的输出是什么? -
如果你尝试
-Xmx64g会发生什么? -
嗯,我们在韩语窗口上的事实并没有让事情变得更容易:) 无论如何,总结一下:确保你的操作系统是 64 位,它“看到”RAM(检查任务管理器)并且您的 JVM 是 64 位的,那么您应该一切顺利。否则我没有想法。对不起。
-
你从
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe启动powershell有什么不同吗? -
这增加了可能存在问题的另一层。 Elicpse 不需要使用 JAVA_HOME 中的 java(这是我上次遇到此类问题时造成问题的原因),请检查项目特定设置。此外,虽然我不确定,但使用 32 位 Eclipse 可能会导致此类问题。如果没有任何效果,最好尝试使用 java -jar 从控制台运行程序,看看问题是否仍然存在。
标签: java memory heap-memory