如何从 python 运行 我的世界服务器?
How to run minecraft server from python?
我不知道如何使用 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 和 显示 window 使用 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 进程中检索任何输出
即该过程将 return 什么都没有。
proc.communicate()
# returns:
(b'', b'')
我不知道如何使用 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 和 显示 window 使用 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 进程中检索任何输出即该过程将 return 什么都没有。
proc.communicate()
# returns:
(b'', b'')