1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Запуск python скрипта при запуске плагина

Тема в разделе "Управление сервером Bukkit", создана пользователем krovinosets, 14 мар 2021.

Статус темы:
Закрыта.
  1. Автор темы
    krovinosets

    krovinosets Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Krovinosets
    Мне надо запустить python скрипт, который не находится в проекте плагина. То есть он лежит в корне сервера по пути script/main.py. Скрипт должен создать файл с датой запуска. Пробую запустить данный скрипт так:
    try {
    String command = "script\\main.py";
    Process p = Runtime.getRuntime().exec(command);
    } catch (IOException e) {
    e.printStackTrace();
    }

    В консоле при запуске плагина выдает ошибку:
    [13:16:13] [Server thread/WARN]: java.io.IOException: Cannot run program "script\main.py": CreateProcess error=193, %1 не является допустимым приложением Win32
    [13:16:13] [Server thread/WARN]: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    [13:16:13] [Server thread/WARN]: at java.lang.Runtime.exec(Runtime.java:621)
    [13:16:13] [Server thread/WARN]: at java.lang.Runtime.exec(Runtime.java:451)
    [13:16:13] [Server thread/WARN]: at java.lang.Runtime.exec(Runtime.java:348)
    [13:16:13] [Server thread/WARN]: at KStart.main.onEnable(main.java:45)
    [13:16:13] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
    [13:16:13] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351)
    [13:16:13] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480)
    [13:16:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:494)
    [13:16:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:408)
    [13:16:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.reload(CraftServer.java:876)
    [13:16:13] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:642)
    [13:16:13] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
    [13:16:13] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
    [13:16:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:758)
    [13:16:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchServerCommand(CraftServer.java:743)
    [13:16:13] [Server thread/WARN]: at net.minecraft.server.v1_16_R3.DedicatedServer.handleCommandQueue(DedicatedServer.java:387)
    [13:16:13] [Server thread/WARN]: at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:356)
    [13:16:13] [Server thread/WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1007)
    [13:16:13] [Server thread/WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:846)
    [13:16:13] [Server thread/WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164)
    [13:16:13] [Server thread/WARN]: at java.lang.Thread.run(Thread.java:748)
    [13:16:13] [Server thread/WARN]: Caused by: java.io.IOException: CreateProcess error=193, %1 не является допустимым приложением Win32
    [13:16:13] [Server thread/WARN]: at java.lang.ProcessImpl.create(Native Method)
    [13:16:13] [Server thread/WARN]: at java.lang.ProcessImpl.<init>(ProcessImpl.java:444)
    [13:16:13] [Server thread/WARN]: at java.lang.ProcessImpl.start(ProcessImpl.java:139)
    [13:16:13] [Server thread/WARN]: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    [13:16:13] [Server thread/WARN]: ... 21 more

    В интернете уже смотрел ответы, пробовал писать String command = "python /c start python script\\main.py"; и по всяко разному, но либо выходит ошибка, либо он вообще ничего не пишет, при этом скрипт не запускается.
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Нахрена и главное зачем? Напиши код сразу в плагине.
     
  3. Автор темы
    krovinosets

    krovinosets Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Krovinosets
    Ну...это скрипт от дискорд бота. Я хотел, чтобы бот запускался вместе с сервером, поэтому мне пришла в голову мысль написать такой плагин...)
     
  4. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    cmd /c программа
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    https://www.spigotmc.org/resources/discordsrv.18494/ Не?
     
  6. Автор темы
    krovinosets

    krovinosets Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Krovinosets
  7. Автор темы
    krovinosets

    krovinosets Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Krovinosets
    Ошибки не выдает, но скрипт не запускается. Он должен создавать файл при запуске. Если его от руки запускать, то все ок.
    Сам скрипт:
    import os
    from datetime import datetime
    date = str(datetime.now())
    date = date[:date.find('.')].replace(' ', '_').replace(':', 'h-',1).replace(':', 'm-',1) + 's'
    text_file = open("{}.log".format(date), "w", encoding='utf-8')
    text_file.write("[я работаю]\n")
    text_file.close()
     
  8. Автор темы
    krovinosets

    krovinosets Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Krovinosets
    String command = "cmd /c script/main.py";
    Process p = Runtime.getRuntime().exec(command);
    Запускаю так
     
  9. Автор темы
    krovinosets

    krovinosets Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Krovinosets
    я аутист, все работало. файлы сохранялись в корне сервера, а я их не замечал...всем спасибо, кто отвечал.
     
Статус темы:
Закрыта.

Поделиться этой страницей