Java Runtime klasse gir tilgang til runtime miljøet som programmet kjører . Kjøretid er exec metoder tillate deg å kjøre eksterne programmer fra et Java-program . Utfører eksterne applikasjoner i et Java- programmet kan du åpne en nettside i en nettleser , samhandle med operativsystemverktøy eller lansere en konsoll vinduet. Få Runtime Environment
Alle Java-programmer har en forekomst av runtime-miljø. Bruk Runtime sin getRuntime ()-metoden for å få tilgang til dette objektet . For eksempel : en
Runtime rt = Runtime.getRuntime ();
Utfør et eksternt program
Runtime tilbyr flere måter å ringe exec metoden, som returnerer en prosess objekt. Den enkleste måten å utføre et eksternt program er Runtime metode exec (String kommando ) , der " command" blir kommandoen som utfører programmet. Følgende samtale utfører "ls " kommandoen for å få en katalogoppføring for rotkatalogen på en Linux eller Unix -system : en
Process p = rt.exec ( "ls /");
exec metoden kan også bli kalt med en matrise som inneholder kommandoen og dens argumenter, miljø variable innstillinger og arbeidskatalog .
Få Process Information
Process klasse gir tilgang til input stream , output stream , feil drift og utgang verdien av den utførte prosessen .
Process.getInputStream metoden gir tilgang til prosessen "standard output stream via programmets input stream . Strømmen skal bufret . Fortsetter det forrige eksemplet , har tilgang til følgende kode utgang fra " ls /" kommandoen skriver ut resultatene
InputStream istrm = p.getInputStream (); . InputStreamReader istrmrdr = new InputStreamReader ( istrm ) ; BufferedReader buffrdr = ny BufferedReader ( istrmrdr ) ;
String data , mens ( ( data = buffrdr.readLine ( ) ) = null ! ) { System.out.println ( data) ;}
Tilsvarende deg kan fange opp feilen strømmen ved å bruke Process ' getErrorStream og bruke en bufret input stream å håndtere dataene. Din søknad kan også sende data til prosessen ' input stream via programmets output stream . Bruk Process ' getOutputStream metode og bufre output stream .
Avslutte
Capture the exit verdien av prosessen ved hjelp av Process ' exitValue metode for å fastslå om det gått som normalt. Sikre at prosessen har gått ut med Process ' waitFor metode for å føre den aktuelle tråden til å vente på at prosessen for å avslutte. For eksempel fange exit verdi i en variabel , som kan brukes senere for å ta avgjørelser om hvordan din søknad vil fortsette:
int ev = 0; if ( ! P.waitFor ( ) = 0 ) { ev = p.exitValue (); }
En prosess kan bli drept ved hjelp av Process ' ødelegge metode
Hensyn
Java 5 introduserte ProcessBuilder klassen til erstatte Runtime.exec . ProcessBuilder gjør det lettere å tilpasse prosessen , og gir bedre kontroll over starter prosessen .
Advarsler
En av de primære funksjonene i Java programmeringsspråk er dens portabilitet til flere plattformer. Ringe eksterne prosesser som er spesifikke for et bestemt operativsystem holder din søknad fra å være bærbar. Unngå å bruke Runtime.exec når en metode for å oppnå det samme målet som finnes i Java-språket .