我无法弄清楚如何使用python命令启动服务器。
s = subprocess.Popen('"D:\MC SERVER 2k19\server.jar" -jar server.jar java', stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
此代码运行没有错误,但不在cmd中启动服务器。
谢谢。
这与你如何传递你的论点有关。
subprocess.Popen(['java', '-jar', 'server.jar'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, cwd='D:\MC SERVER 2k19')
如果需要使用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'')