hamed
hamed

Reputation: 125

How can I run a Java from windows batch file but hiding the command window?

I have a .bat file include this command java -jar example.jar that runs example.jar.

I don't want cmd.exe to be visible on screen when the file is being executed. Is this possible?

Upvotes: 11

Views: 21664

Answers (5)

Dave Cruise
Dave Cruise

Reputation: 443

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

The /B allow you to execute the batch file invisibly. Just have the codes above in your function and it will work.

Upvotes: 1

Max
Max

Reputation: 7586

Start your bat file using the windows "start" command

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

The "/B" option tell to start the program without showing the typical command window.

Upvotes: 5

Chris Sim
Chris Sim

Reputation: 4132

you can hide it like this:

start javaw -jar example.jar

Or if you call it from inside of another project you can call like like this:

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

If you have any question just ask me :))

Upvotes: 8

user2697727
user2697727

Reputation: 31

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

Upvotes: 3

Will Tatam
Will Tatam

Reputation: 131

Use javaw.exe rather than java.exe this should drop the shell

Upvotes: 13

Related Questions