Meaningless Drivel is fun!*
The moose likes Other JSE/JEE APIs and the fly likes how to run batch files from  a java program Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Other JSE/JEE APIs
Bookmark "how to run batch files from  a java program" Watch "how to run batch files from  a java program" New topic
Author

how to run batch files from a java program

sateesh arumbaka
Greenhorn

Joined: May 17, 2001
Posts: 5
Hello,
how to run batch files from a java program
karl koch
Ranch Hand

Joined: May 25, 2001
Posts: 388
hi,
use the Runtime (java.lang) to exec a commando.
obtain a Runtime using the Runtime.getRuntime() method and then call exec("your batch file name here"). should work.

karl
sateesh arumbaka
Greenhorn

Joined: May 17, 2001
Posts: 5
I got the answer ,
here is the code which works really great... it also gets the errors and output generated by the process..
import java.util.*;
import java.io.*;
class StreamGobbler extends Thread
{
InputStream is;
String type;
StreamGobbler(InputStream is, String type)
{
this.is = is;
this.type = type;
}
public void run()
{
try
{
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
System.out.println(type + ">" + line);
} catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}

public class GoodWindowsExec
{
public static void main(String args[])
{
if (args.length < 1)
{
System.out.println("USAGE: java GoodWindowsExec <cmd>");
System.exit(1);
}
try
{
String osName = System.getProperty("os.name" );
String[] cmd = new String[3];
if( osName.equals( "Windows NT" ) )
{
cmd[0] = "cmd.exe" ;
cmd[1] = "/C" ;
cmd[2] = args[0];
}
else if( osName.equals( "Windows 95" ) )
{
cmd[0] = "command.com" ;
cmd[1] = "/C" ;
cmd[2] = args[0];
}
Runtime rt = Runtime.getRuntime();
System.out.println("Execing " + cmd[0] + " " + cmd[1]
+ " " + cmd[2]);
Process proc = rt.exec(cmd);
// any error message?
StreamGobbler errorGobbler = new
StreamGobbler(proc.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new
StreamGobbler(proc.getInputStream(), "OUTPUT");
// kick them off
errorGobbler.start();
outputGobbler.start();
// any error???
int exitVal = proc.waitFor();
System.out.println("ExitValue: " + exitVal);
} catch (Throwable t)
{
t.printStackTrace();
}
}
}

 
Don't get me started about those stupid light bulbs.
 
subject: how to run batch files from a java program
 
Similar Threads
call java (main) program from JSP
How to run dos batch file from java program
java program that can run a .class file in msdos, is this possible?
Thread Related Problem
Can i host web service through batch file