aspose file tools*
The moose likes Java in General and the fly likes executing java commands using a java program Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "executing java commands using a java program" Watch "executing java commands using a java program" New topic

executing java commands using a java program

nagsen kamble

Joined: Jan 25, 2008
Posts: 4

Instead from command prompt, I am trying to execute java commands like 'javac', 'java' using java program. I have tried Runtime.getRuntime().exec() but it only executes the DOS commands like 'del'. samples those i tried are:

with taking commands as String[],

commands[0] = "cmd";
commands[1] = "javac C:\\";

commands[0] = "cmd";
commands[1] = "javac";
commands[2] = "C:\\";

commands[0] = "cmd";
commands[1] = "set";
commands[2] = "path=C:\\Program Files\\IBM\\WebSphere Studio\\Application Developer IE\\v5.1\\runtimes\\base_v5\\java\\bin";
commands[3] = "javac C:\\";

But none of above is error/exception occurs but nothing happen. Just command prompt comes and disappears but no other action is happening....only DOS command such as following 'del' is working:

commands[0] = "cmd";
commands[1] = "del";
commands[2] = "C:\\";

The lines used to execute are:

Runtime r= Runtime.getRuntime();
Process p=null;
}catch(Exception e)
System.out.println("Exception is:- "+e.getMessage());

Could you please tell me what is the way to execute java commands using java programming language?

My ultimate intention is to execute java commands (jar - xvf and other commands) to jar and unjar the files using java program instead command prompt.
Rok Štelcer
Ranch Hand

Joined: Nov 03, 2009
Posts: 101
Here you go:


Rob Spoor

Joined: Oct 27, 2005
Posts: 19722

Read the Javaworld article "When Runtime().exec won't". You really should.

If you don't need the command window, you can simply skip the "cmd" part and execute the javac command directly:

About creating the JAR file, I wouldn't do that using command line but using the API itself. Check out the java.util.jar package; you can use a JarOutputStream around a FileOutputStream to write the entries. Writing an entry goes as follows:
1) create a ZipEntry
2) call putNextEntry()
3) write the entire contents of the file to put in the JAR file
4) repeat steps 2 and 3 for all other entries
5) close() the JarOutputStream
You can even add a Manifest.MF file using the Manifest class.

Unpacking the JAR file can be done using JarFile or JarInputStream.

How To Ask Questions How To Answer Questions
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 39436
Please search this website; there have been threads about using DOS commands with Runtime.exec() before, but you may have to go back a few years. Some of those commands are specific commands for the command line program, rather than invocations of executables. I can't remember the details, but there will be more in the old thread.

And I presume you have read when Runtime.exec() won't, Michael Daconta's classic article (which I see Rob has quoted too)?
It is sorta covered in the JavaRanch Style Guide.
subject: executing java commands using a java program