好吧,我一直在研究一种工具,以帮助维护托管在单台计算机上的大量游戏服务器。我正在做的是从 python 脚本中获取一个 .bat 文件。该 bat 文件设置服务器婴儿车,如最大内存和类似的东西。我使用以下函数打开并运行 .bat 文件。
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()
此函数以两种方式之一调用,第一种方式是启动程序。
thread.start_new_thread( StartServer, (path,File, ) )
2、关闭程序
StartServer(path,File)
StartServer 看到重新进入并终止指定的程序......这对于需要很少 ram 的程序非常有用,比如 bat 文件,例如
@echo Hello world.
@pause
但是,当尝试为 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 文件的内存错误,如下所示。这是来自 bat 文件而不是来自 python 端
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文件提前谢谢你!