Java

通過終端執行的 Manjaro Linux 中的“最大堆太小”Java 錯誤

  • June 15, 2022

這個真的不知道該怎麼辦了。我正在嘗試使用更多 RAM 啟動我的世界伺服器,但終端中的命令給了我這個錯誤。

僅當我轉到文件管理器並點擊 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

每次都會導致完全相同的錯誤:

“虛擬機初始化過程中發生錯誤”

“最大堆太小”

我也用 -nogui 試過這些,同樣的錯誤。

xmlx 和 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 上配置和執行遊戲伺服器變得非常容易。

引用自:https://unix.stackexchange.com/questions/706349