【问题标题】:How can I run a Java from windows batch file but hiding the command window?如何从 Windows 批处理文件运行 Java 但隐藏命令窗口?
【发布时间】:2016-10-31 11:48:51
【问题描述】:

我有一个.bat 文件,其中包含运行example.jar 的此命令java -jar example.jar

我不希望cmd.exe 在文件执行时出现在屏幕上。这可能吗?

【问题讨论】:

标签: java batch-file cmd


【解决方案1】:

使用 javaw.exe 而不是 java.exe 这应该会删除 shell

【讨论】:

  • 谢谢你,请帮我看看'javaw.exe'的例子。
【解决方案2】:

你可以这样隐藏它:

start javaw -jar example.jar

或者如果你从另一个项目内部调用它,你可以这样调用:

try {
        Process p = Runtime.getRuntime().exec("cmd /c start /B example.bat");
        p.waitFor();
    } catch (InterruptedException ex) {
        Logger.getLogger(OpenFileFromCmd.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(OpenFileFromCmd.class.getName()).log(Level.SEVERE, null, ex);
    }

如果你有任何问题可以问我:))

【讨论】:

    【解决方案3】:

    使用windows“start”命令启动你的bat文件

    Start "" /B "c:\myFolder\MyJavaLauncher.bat"
    

    “/B”选项告诉在不显示典型命令窗口的情况下启动程序。

    【讨论】:

      【解决方案4】:

      Runtime.getRuntime().exec("cmd /c start /B example.bat");

      【讨论】:

      • 您好,欢迎来到 Stack Overflow!就目前而言,您的答案似乎很少……稀疏。您能否编辑您的答案并添加关于为什么运行此特定命令的解释?
      【解决方案5】:
      try {
              String[] command = {"cmd.exe", "/C", "Start /B" , "C:\\path\\urbatname.bat"};
              Process p =  Runtime.getRuntime().exec(command);           
          } catch (Exception ex) {
              ex.printStackTrace();
          }
      

      /B 允许您不可见地执行批处理文件。只需在您的函数中添加上述代码即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 2013-01-15
        • 1970-01-01
        • 2014-02-23
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多