Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

restart jar не работаит :((((

Тема в разделе "Разработка плагинов для новичков", создана пользователем xDark, 18 июл 2016.

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

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    пишу рестарт для сервера, через .sh & .bat все работает, а через .jar - nope
    Помогите найти ошибку
    Код:
          public static void restart()
          {
            restart(new File(configManager.restartScript));
          }
          public static void restart(File script)
          {
            AsyncCatcher.enabled = false;
            try
            {
              if (script.isFile())
              {
                System.out.println("[WipeUtil] Trying to restart with " + configManager.restartScript);
              
                WatchdogThread.doStop();
                for (Player ps : Bukkit.getOnlinePlayers()) {
                    ps.kickPlayer(configManager.messageReboot);
                }
                try
                {
                  Thread.sleep(100L);
                }
                catch (InterruptedException ex) {}
                MinecraftServer.getServer().getServerConnection().b();
                try
                {
                  Thread.sleep(100L);
                }
                catch (InterruptedException ex) {}
                try
                {
                  MinecraftServer.getServer().stop();
                }
                catch (Throwable t) {}
                Object shutdownHook = new Thread()
                {
                  private Object val$script;
    
                public void run()
                  {
                    try
                    {
                      String os = System.getProperty("os.name").toLowerCase();
                      if (os.contains("win")) {
                        Runtime.getRuntime().exec("cmd /c start " + ((File) this.val$script).getPath());
                      } else {
                        Runtime.getRuntime().exec(new String[] { "sh", ((File) this.val$script)
                      
                          .getPath() });
                      }
                    }
                    catch (Exception e)
                    {
                      e.printStackTrace();
                    }
                  }
                };
                ((Thread)shutdownHook).setDaemon(true);
                Runtime.getRuntime().addShutdownHook((Thread)shutdownHook);
              }else {
                System.out.println("[WipeUtil] Startup script '" + configManager.restartScript + "' not found! Attempting to restart with .jar file!.");
                if (jar.exists()) {    
                    WatchdogThread.doStop();
                for (Player ps : Bukkit.getOnlinePlayers()) {
                    ps.kickPlayer(configManager.messageReboot);
                }
                try
                {
                  Thread.sleep(100L);
                }
                catch (InterruptedException ex) {}
                MinecraftServer.getServer().getServerConnection().b();
                try
                {
                  Thread.sleep(100L);
                }
                catch (InterruptedException ex) {}
                try
                {
                  MinecraftServer.getServer().stop();
                }
                catch (Throwable t) {}
                Object shutdownHook = new Thread()
                {
                try {
                  Runtime.getRuntime().exec("Spigot.jar");
                }
            catch (Exception e)
            {
              e.printStackTrace();
            }
          }
        }
        ((Thread)shutdownHook).setDaemon(true);
        Runtime.getRuntime().addShutdownHook((Thread)shutdownHook);
              }
    И да, в процессах Java есть - но сервер не запускается.
     
  2. Хостинг MineCraft
    <
  3. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    .jar не запускается в диалоговом окне, для этого и существует .bat и .sh
     
  4. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    ASW говорит обратное, как же @Shevchik это сделал?[DOUBLEPOST=1468844958,1468838690][/DOUBLEPOST]uuupp
     
  5. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    JD-GUI скачай и декомпилируй.
     
  6. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    исходники же есть, зачем декомпилировать.?
     
  7. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Пробел забыл после sh.
    Так же не запустишь, попробуй java -jar Spigot.jar.
     
  8. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Сейчас ппробую
     
  9. Larin

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

    Баллы:
    103
  10. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Все еще нет, процесс висит - но не работает сервер
    Код:
            finally
              {
                System.out.println("Startup script '" + "start.bat" + "" does not exist! Getting .jar!");
                try {
                    Runtime.getRuntime().exec("java -Xmx1G spigot.jar");
                } catch (Exception r) {
                    r.printStackTrace();
                }
              }
          }
     
    Последнее редактирование: 18 июл 2016
  11. Larin

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

    Баллы:
    103
    1. ProcessBuilder
    2. Выведи OutputStream в консоль и узнай, что происходит.
     
  12. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Хорошо, с этим разобрался, спасибо @Larin но теперь не закрывается начальное окно, т.е. плагины выключаются, сервер - нет

    Можно ли "эмулировать" команду taskkill иlи PAUSE?
    Код:
            finally
              {
                System.out.println("Startup script '" + SpigotConfig.restartScript + "' does not exist! Getting .jar!");
                try {
                    Runtime.getRuntime().exec("cmd /c start spigot.jar");
                } catch (Exception r) {
                    r.printStackTrace();
                }
              }
          }
     
  13. Larin

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

    Баллы:
    103
    Не понял.
    Какое начальное окно?
    "Сервер нету"?
     
  14. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Опечатка, я имею ввиду сервер запускается как надо, но теперь их 2 - т.к. после этого он не стопается
    upd: Разобрался, тему закрываю, спасибо за помощь
     
    Последнее редактирование: 19 июл 2016
Статус темы:
Закрыта.

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