This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
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 Android Security Essentials Live Lessons this week in the Android 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
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: 19655
    
  18

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 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38045
    
  22
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)?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: executing java commands using a java program
 
Similar Threads
How to call Oracle sqlldr in Java
Start and Stop tomcat from Java Program
Expect from Program
DOS command in java program question..
why can't see the output in dos window after using buffered reader..??