Python, невозможно получить доступ к jarfile с помощью os.system () - PullRequest
0 голосов
/ 27 мая 2020

Это для сервера minecraft, я использую python для обработки нескольких папок сервера, в каждой из которых есть start.bat.

Вот как выглядит start.bat:

java -Xmx4G -jar server.jar nogui
pause

Он отлично работает, если я дважды щелкну по нему, однако, если я вызываю его из python следующим образом:

import os
os.system('server\\start.bat')

Python говорит: '1' и cmd говорит : Ошибка: Невозможно получить доступ к jarfile server1.15.jar

Я просмотрел этот пост и попробовал следующее:

  • изменен 'server.jar' на 'server' в start.bat
  • измененный каталог
  • предоставлен полный путь к файлу start.bat
  • проверен на наличие пробелов в моем пути (и не нашел)
  • попытался запустить файл от имени администратора

Ничего из вышеперечисленного не помогло мне, какая-либо подсказка?

редактировать 2: Я также мог запустить файл jar прямо из python, без использования файла bat, но я понятия не имею, как это сделать

1 Ответ

0 голосов
/ 27 мая 2020

Решено:

Может быть, для многих это очевидно, но я напишу, что помогло мне помочь людям с той же проблемой.

Допустим, у вас есть такая структура папок :

folder\start.py #is the python starter
folder\server\server.jar #is the server jar
folder\server\start.bat #is the server jar starter (java -Xmx1500M -Xms125M -jar server.jar nogui)

Когда с помощью python вы вызываете os.system('server\\start.bat'), он открывает новую консоль, что заставило меня подумать, что это start.bat cmd, но на самом деле python выполняет ваши пакетные команды в каталог folder.

Есть два метода, которые я нашел для решения этой проблемы, и оба они не очень удобны (думаю, я сделаю функцию python для автоматизации процесса):

Вариант первый: измените файл start.bat на java -Xmx1500M -Xms125M -jar server\server.jar nogui

Вариант второй: измените start.bat, добавив cd server перед первой строкой.

...