Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
The moose likes Java in General and the fly likes catching an exception thrown by a commandline app. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "catching an exception thrown by a commandline app." Watch "catching an exception thrown by a commandline app." New topic
Author

catching an exception thrown by a commandline app.

Michael Hansen
Greenhorn

Joined: Jun 13, 2006
Posts: 2
Hello,

This might not be appropriate for an advanced category, but never the less I'm trying my luck here.

See, I have this problem where I call a commandline application (a windows .exe) from my java app:


//commands, and arguments
list = new ArrayList<String>();
list.add("myCmd");
processBuilder = new ProcessBuilder(list);
processBuilder.directory(someDir);
process = processBuilder.start();

This is all fine and dandy. However, the commandline app. sometimes throws an exception which bubbles all the way up to OS level resulting in an alert box, and pausing execution.

Question: how to catch an exception thrown by a commandline app. which is invoked from a Java app. from within that same Java app.

Any help on this 'issue' would be much appreciated.

cheers

-michael
Peter Chase
Ranch Hand

Joined: Oct 30, 2001
Posts: 1970
You can't catch an exception in an external process. Not with pure Java anyway. Maybe an individual O.S. may provide APIs for running programs with more control over error handling, but you'd have to access that with JNI.

If the program you are running is in fact a Java application, then you could gain more control by running it within the same JVM, instead of as an external process. Instead of invoking its executable, make its classes available to some or other ClassLoader, and invoke its main() method. You can try...catch around that invocation and hence catch any Java exception.


Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
Michael Hansen
Greenhorn

Joined: Jun 13, 2006
Posts: 2
I suspected as much.

Thank you Peter!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: catching an exception thrown by a commandline app.
 
Similar Threads
Gui and Thread
Working with ProcessBuilder's working directory
Calling maven from ProcessBuilder
Class loaders
Execute command line command with arguments within Web Application