我一直在尝试找到一种方法来使这项工作有效,我使用了jarfix和最新的Java,并且弹出了同一件事,当时我试图将ram添加到Bukkit Server中,但没有任何效果,所以我还能做其他事情吗?
最大可能的堆大小可由可用的内存空间确定。它在32位和64位上有所不同,如下所示。
2 ^ 32(〜4GB)在32位JVM上在64位JVM上为2 ^ 64(〜16EB)。
32位Java要求内存中有连续的可用空间才能运行。如果您指定大堆大小,则即使您的可用空间比必要的多得多,内存中也可能没有太多的连续可用空间。在这种情况下,安装64位版本可能会解决此问题。
您可以通过以较小的堆大小(例如-Xmx512m)运行Java来解决此错误。
java -Xmx512M MyApplication
如果在32位VM上使用-Xmx选项指定了太大的内存,则也可能会出现此错误。例如:假设您在执行以下信息时遇到了错误。
java -Xms1536M -Xmx1536M MyApplication
您可以使用小于物理内存的堆大小来运行应用程序。
java-Xms2048M -Xmx2048M MyApplication
无法为2097152kb对象堆保留足够的空间。您可能会遇到特定错误,如果使用任何工具,则无法为2097152kb对象堆保留足够的空间。这仅表示JVM默认情况下无法获取该工具所需的2 GB堆空间。