How do I launch a completely independent process from a Java program?

There is a parent child relation between your processes and you have to break that.
For Windows you can try:

Runtime.getRuntime().exec("cmd /c start editor.exe");

For Linux the process seem to run detached anyway, no nohup necessary.
I tried it with gvim, midori and acroread.

import java.io.IOException;
public class Exec {
    public static void main(String[] args) {
        try {
            Runtime.getRuntime().exec("/usr/bin/acroread");
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("Finished");
    }
}

I think it is not possible to to it with Runtime.exec in a platform independent way.

for POSIX-Compatible system:

 Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "your command"}).waitFor();

Leave a Comment