windows - påberåbe et kommandolinjeværktøj indefra ved java applciation

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et kommandolinjeværktøj, som jeg vil starte fra en java-applikation. Min ansøgning skal så vente på, at kommandolinjeværktøjet skal returnere/afslutte.
Jeg vil implementere min applikation på Windows, Mac og Linux, og min app skal kunne bruge kommandolinjeværktøjet på alle platforme.
Hvordan kan jeg påberåbe det korrekt fra min Java-applikation?

Bedste reference


http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html[5]


http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html[6]


ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Process p = pb.start();
p.waitFor();

Andre referencer 1


Brug java.lang.Proces for det:


    final Process process = Runtime.getRuntime().exec("yourprogram", null, outputDir);
    final int exitCode = process.waitFor();
    if (exitCode != 0) {
        throw new RuntimeException("program didnt exit with 0, but with " + exitCode);
    }

Andre referencer 2


Du kan bruge klassen Runtime til at starte kommandolinjeprogram. Du skal kunne bruge i Win/Mac/Linux ved at sørge for, at kommandolinjeprogrammet du kører altid er i PATH.


            Runtime rt = Runtime.getRuntime();
            Process proc;               
            proc = rt.exec(cmdName);

            // Wait for the command to complete.
            exitVal = proc.waitFor();