通过终端运行 Manjaro Linux 时出现“最大堆太小”Java 错误

通过终端运行 Manjaro Linux 时出现“最大堆太小”Java 错误

真的不知道该怎么办这个。我正在尝试启动具有更多 RAM 的 Minecraft 服务器,但终端中的命令给出了此错误。

仅当我转到文件管理器并单击 server.jar 文件时,服务器才能工作,然后它会像正常情况一样启动 GUI 和所有内容。问题是我无法通过那里设置 RAM 参数,只能通过命令。

我试过了:

sudo java -Xmx1024 -Xms1024 -jar server.jar

sudo java -Xmx4096 -Xms1024 -jar server.jar

sudo java -Xmx8164 -Xms1024 -jar server.jar

sudo java -Xmx1000000 -Xms1024 -jar server.jar

sudo java -Xmx3072 -Xms2048 -jar server.jar

sudo java -Xmx2048 -Xms512 -jar server.jar

sudo java -Xmx1024 -Xms512 -jar server.jar

sudo java -Xmx512 -Xms256 -jar server.jar

每次都会导致完全相同的错误:

“VM 初始化期间发生错误”

“最大堆太小”

我也用 -nogui 尝试过这些,同样的错误。

答案1

xmx 和 xms 设置的默认值以字节为单位,因此这些值太小。

man java

-Xmsn
                Specify the initial size, in bytes, of the memory allocation
                pool. This value must be a multiple of 1024 greater than 1MB.
                Append the letter k or K to indicate kilobytes, or m or M to
                indicate megabytes. The default value is chosen at runtime
                based on system configuration. For more information, see
                HotSpot Ergonomics
                Examples:

                       -Xms6291456
                       -Xms6144k
                       -Xms6m

 -Xmxn
                Specify the maximum size, in bytes, of the memory allocation
                pool. This value must a multiple of 1024 greater than 2MB.
                Append the letter k or K to indicate kilobytes, or m or M to
                indicate megabytes. The default value is chosen at runtime
                based on system configuration. For more information, see
                HotSpot Ergonomics
                Examples:

                       -Xmx83886080
                       -Xmx81920k
                       -Xmx80m

所以尝试:

sudo java -Xmx2048m -Xms2048m -jar server.jar

顺便说一句,我建议研究一下Linux 游戏服务器管理器如果你还不熟悉的话。他们有一系列脚本,使在 Linux 上配置和运行游戏服务器变得非常容易。

相关内容