I’m building a command line string in my Java application (e.g. “winword.exe FinalReport.doc”). I want to execute the command and let it go: I don’t want/need to wait for the result (max would be: did it start right, but that’s optional) and the application needs to continue running when my Java application has terminated.
I had a look at Runtime.getRuntime().exec() and Apache Commons_Exec. Both keep in control of the launched app (with commons and a callback clearly preferable), but that’s not what I need. What do I miss?
Do I need to call the Windows/Linux/Mac API to launch an independent app?
There is an easy cross-platform way to do this, using the
java.awt.Desktopapi, like this:This opens up whatever application the user has specified has his preferred editor for that file, in another process entirely separate from your application (and you don’t need to worry about possibly getting locked up from not reading from the created process’ stdout the way you would using ProcessBuilder). You don’t need to use platform-specific code or even know what applications are available on the user’s platform.