
我正在嘗試在具有 384mb ram 的 vps 上運行文件,如果我在終端上使用此命令運行該文件
java -jar server.jar
它只是啟動進程,但只分配了大約 180mb,我需要分配所有可用的 ram,否則伺服器將崩潰。我運行命令 free -m 並得到以下輸出:
total used free shared buffers cached
Mem: 384 58 325 6 0 44
-/+ buffers/cache: 14 369
Swap: 96 0 96
所以我嘗試了很多使用不同數量的記憶體的命令,但沒有人工作,java無法創建java虛擬機器:
java -Xms32M -Xmx256M -jar minecraft_server.jar
我嘗試設定最大記憶體、一半和更改值,但它給出了錯誤。在我在 1GB vps 上運行相同的檔案並且該命令運行良好之前:
java -Xmx1024M -Xms1024M -jar bukkit.jar
我的java版本是:
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK Client VM (build 24.51-b03, mixed mode)
我的作業系統是 Ubuntu Server 12.04 x86 希望你能幫助我,我兩天都遇到同樣的問題
編輯:不同數量的記憶體的錯誤訊息
root@vps-dot-me:~# java -Xms32M -Xmx384M -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root@vps-dot-me:~# java -server -Xms128M -Xmx256M -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root@vps-dot-me:~# java -XX:MaxHeapSize=256m -jar mine.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
答案1
記憶體分配可能太小。嘗試一次增加一點。如果較小的分配失敗,請嘗試下一個較大的分配。
export _JAVA_OPTIONS="-Xms128m -Xmx128m
export _JAVA_OPTIONS="-Xms256m -Xmx256m
export _JAVA_OPTIONS="-Xms512m -Xmx512m
export _JAVA_OPTIONS="-Xms1024m -Xmx1024m
設定相同後執行此命令:
java -jar yourJavaApp.jar
(您需要位於應用程式的目錄中)。
請注意,您可以透過作為選項傳遞來「暫時」嘗試:
java -Xms128m -Xmx128m -jar yourJavaApp.jar
它失敗是因為 JRE 沒有分配足夠的記憶體。也許您運行了太多打開的應用程式、記憶體不足等。