| Author |
executing java commands using a java program
|
nagsen kamble
Greenhorn
Joined: Jan 25, 2008
Posts: 4
|
|
Hi,
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[],
1.
commands[0] = "cmd";
commands[1] = "javac C:\\test.java";
2.
commands[0] = "cmd";
commands[1] = "javac";
commands[2] = "C:\\test.java";
3.
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:\\test.java";
But none of above is working...no 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:\\test.java";
The lines used to execute are:
Runtime r= Runtime.getRuntime();
Process p=null;
try
{
p=r.exec(commands);
}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:
Regards,
Rok
|
SCJP, SCWCD
|
 |
Rob Spoor
Sheriff
Joined: Oct 27, 2005
Posts: 19216
|
|
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.
|
SCJP 1.4 - SCJP 6 - SCWCD 5
How To Ask Questions How To Answer Questions
|
 |
Campbell Ritchie
Sheriff
Joined: Oct 13, 2005
Posts: 32599
|
|
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)?
|
 |
 |
|
|
subject: executing java commands using a java program
|
|
|