- Баллы
- 96
пишу рестарт для сервера, через .sh & .bat все работает, а через .jar - nope
Помогите найти ошибку
И да, в процессах Java есть - но сервер не запускается.
Помогите найти ошибку
JavaScript:
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);
}