如何在Windows批处理文件中运行Java但隐藏命令窗口?

11

我有一个包括命令java -jar example.jar.bat文件,用于运行example.jar

当执行该文件时,我不想让cmd.exe在屏幕上可见。这可能吗?


2
请查看如何方便地为最终用户启动Java GUI程序。它包含了对你的问题的简单回答。 - MockerTim
5个回答

12

使用javaw.exe而不是java.exe,这将取消外壳


谢谢大家,请给我一个关于“javaw.exe”的例子帮助我。 - hamed

8

你可以像这样隐藏它:

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);
    }

如果您有任何问题,请随时问我:))

5
使用Windows的“start”命令启动您的批处理文件。
Start "" /B "c:\myFolder\MyJavaLauncher.bat"

"/B"选项告诉程序在启动时不显示典型的命令窗口。

3

使用Runtime.getRuntime().exec("cmd /c start /B example.bat");启动一个批处理文件。


1
你好,欢迎来到 Stack Overflow!就目前而言,你的回答似乎有点...简略。你能否编辑你的回答并解释一下为什么要运行这个特定的命令? - Chris Forrence

1
try {
        String[] command = {"cmd.exe", "/C", "Start /B" , "C:\\path\\urbatname.bat"};
        Process p =  Runtime.getRuntime().exec(command);           
    } catch (Exception ex) {
        ex.printStackTrace();
    }

/B 命令可以让批处理文件在后台运行。只需将上述代码放入函数中即可生效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接