OkayIV一直在开发一个满手工具来帮助维护一台计算机上托管的大量游戏服务器。我正在做的是从python脚本中取出一个.bat文件。这个bat文件设置服务器pram,比如max memory之类的东西。我用以下函数打开并运行.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()
此函数的调用方式有两种: 第一种方法是启动程序。在
^{pr2}$2.关闭程序
StartServer(path,File)
StartServer查看重新输入并终止指定的程序。。。 这对于需要很少内存的程序非常有用,比如bat文件,比如
@echo Hello world.
@pause
但是,当试图为java程序分配更多的ram时
@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文件谢谢!在
您试图启动一个32位JVM,给它的堆大小对于32位体系结构来说太大了。对于32位JVM,最大堆大小小于3Gb。实际的限制取决于操作系统(它决定了有多少地址空间可供应用程序使用)和JVM使用了多少非堆内存。在
要么减小最大堆大小,要么切换到64位JVM(和64位操作系统)。在
相关问题 更多 >
编程相关推荐