如何从python运行minecraft服务器?

问题描述 投票:0回答:2

我无法弄清楚如何使用python命令启动服务器。

s = subprocess.Popen('"D:\MC SERVER 2k19\server.jar" -jar server.jar java', stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)

此代码运行没有错误,但不在cmd中启动服务器。

谢谢。

python minecraft popen
2个回答
0
投票

这与你如何传递你的论点有关。

subprocess.Popen(['java', '-jar', 'server.jar'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, cwd='D:\MC SERVER 2k19')

0
投票

如果需要使用Python中的CMD进程启动Java程序并显示窗口,则可以使用子进程调用打开另一个CMD终端并运行该命令。

在Windows中,您需要在传递给辅助CMD进程的路径中使用CMD转义空间。这是用胡萝卜^完成的

proc = subprocess.Popen(
    ['start', 'cmd', '/k', "D:\\MC^ SERVER^ 2k19\\server.jar", 
     '-jar', 'server.jar', 'java'], 
    stdout=subprocess.PIPE, 
    stderr=subprocess.PIPE, 
    shell=True
)

请记住,您将无法从Python检索辅助CMD进程的任何输出。

即这个过程什么都不会回报。

proc.communicate()
# returns:
(b'', b'')
© www.soinside.com 2019 - 2024. All rights reserved.