好的,我一直在用一隻手工具來幫助維護一臺託管在一臺計算機上的大量遊戲服務器。我正在做的是從python腳本中啓動一個.bat文件。該bat文件將服務器設置爲最大內存和這種性質。我用下面的函數打開並運行.bat文件。當試圖通過python腳本啓動一個minecraft服務器時出現內存問題
def StartServer(path,file):
if file not in MK.keys():
l = Popen(file, cwd=path)
MK[file]=l
stdout, stderr = l.communicate()
else:
MK[file].terminate()
這個函數被調用的兩種方式 1的方式是啓動程序之一。
thread.start_new_thread(StartServer, (path,File,))
2日關閉程序
StartServer(path,File)
startserver的看到再入並終止指定的程序...... ,這對於需要很少的RAM,像一個bat文件,例如程序的偉大工程
@echo Hello world.
@pause
但是當試圖分配更多的RAM,用於java程序如,
@ECHO OFF
SET BINDIR=%~dp0
CD /D "%BINDIR%"
"%ProgramFiles%\Java\jre7\bin\java.exe" -Xmx4096M -Xms4096M -jar Minecraft_RKit.jar user:password
PAUSE
我收到來自BAT文件的內存錯誤,如下所示。這是從蝙蝠文件不是從蟒蛇方
Invalid mat heap size: -Xmx4096M
The specified size exceeds the maximum representable size.
Error: Could not create java virtual machine.
Error: A fatal exception has occurred. Program will exit.
Press any key to continue . . .
注:我更喜歡使用python和bat文件,提前感謝您!
只是猜測,你運行的是32位Python,所以'%ProgramFiles%'指向32位Java? –