【问题标题】:Stopping Minecraft Server in Eclipse在 Eclipse 中停止 Minecraft 服务器
【发布时间】:2019-12-04 18:42:39
【问题描述】:

我已经尝试了几个小时,但我不知道该怎么做。我正在创建一个 Minecraft Bukkit 插件,它应该有一个“重启”命令,它会发送一些警告消息,之后我想关闭服务器。我创建了一个批处理文件来执行此操作,但是,当警告结束时,我希望 Java 为我执行此操作,例如 idk:

open("C:/Users/Blablabla/Desktop/close.bat");

目前我有这个:

public String document = "C:/Users/Joan-Server/Desktop/Server/closer.bat";

if (args[0].equalsIgnoreCase("restart")) {
    while(x != 0) {
        Bukkit.broadcastMessage(plugin.name + ChatColor.GOLD + "¡ATENCIÓN! " + ChatColor.WHITE + "Reinicio del servidor en "
            + ChatColor.RED + x + " segundos.");
        //Try--
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        x = x - 1;
    }
    //Try--
}

【问题讨论】:

  • 嗨,欢迎来到 stackoverflow。如果我理解正确,您正在尝试从 Java 程序运行批处理文件?
  • batch-file 在哪里?

标签: java batch-file minecraft bukkit


【解决方案1】:

你可以使用这样的东西来执行你的 bat 文件:

try{    
    Process p = Runtime.getRuntime().exec("C:/path/to/file.bat");
    p.waitFor();

}catch( IOException ex ){
    //Catch if file doesn't exist or is inaccessible 
}
catch( InterruptedException ex ){
    //If the p.waitFor() is interrupted     
}

使用它来执行你的重启脚本,你应该很高兴!假设您的重启脚本停止服务器,等待,然后再次启动服务器。

如果您还需要什么,请告诉我!

【讨论】:

  • 感谢您的帮助。我以前一直在尝试这个选项,但我不知道为什么我总是出错。现在完美运行!
  • 完美,您介意接受这个作为答案吗?谢谢:)
  • @JoanGómezHaro 请接受答案。这将奖励 CuriousOne 的好答案,并让其他用户知道问题已经得到解答。您可以通过单击问题旁边的复选标记来完成此操作。
【解决方案2】:

您也可以通过

直接从您的插件重新启动
getServer().dispatchCommand(getServer().getConsoleSender(), "restart");

如果你真的想运行批处理文件,请使用

Runtime.getRuntime().exec("C:\\Users\\Blablabla\\Desktop\\close.bat");

如果您还想处理 bat 文件的控制台输出,请查看this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    相关资源
    最近更新 更多