Java Can';t分配超过1397mb的JVM堆

Java Can';t分配超过1397mb的JVM堆,java,jvm,command-line-arguments,jvm-arguments,Java,Jvm,Command Line Arguments,Jvm Arguments,如果我尝试使用-Xmx1397m命令行参数运行超过1397mb的Java,它将无法初始化。为什么会这样 即: “java path\java.exe”-Xmx1397m->有效 java path\java.exe“-Xmx1398m->崩溃 这台机器几乎有100GB未使用的ram,我正在运行32位java。众所周知,Windows上的32位java存在一个问题,即由于地址空间碎片问题,无法获得预期的3GB堆。HotSpot JVM的堆需要一个连续的地址块,一些永久映射到用户空间的共享DLL

如果我尝试使用-Xmx1397m命令行参数运行超过1397mb的Java,它将无法初始化。为什么会这样

即:

  • java path\java.exe”-Xmx1397m
    ->有效

  • java path\java.exe“-Xmx1398m
    ->崩溃


这台机器几乎有100GB未使用的ram,我正在运行32位java。众所周知,Windows上的32位java存在一个问题,即由于地址空间碎片问题,无法获得预期的3GB堆。HotSpot JVM的堆需要一个连续的地址块,一些永久映射到用户空间的共享DLL是碎片请参阅空间。

参见。您可能应该考虑移动到64位JVM。