Как запустить сервер майнкрафт из питона? - PullRequest
0 голосов
/ 02 мая 2019

Я не могу понять, как запустить сервер с помощью команды python.

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

Этот код выполняется без ошибок, но не запускает сервер в cmd.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Если вам нужно запустить программу Java с использованием процесса CMD из Python и показать окно, вы можете использовать подпроцесс для вызова, чтобы открыть другой терминал 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
)

Имейте в виду, что вы НЕ сможете извлечь любые выходные данные из вторичного процесса CMD из Python.

т.е. процесс ничего не вернет.

proc.communicate()
# returns:
(b'', b'')
0 голосов
/ 02 мая 2019

Это связано с тем, как вы передаете свои аргументы.

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