Javas Runtime klasse giver adgang til runtime miljø, hvor programmet kører . Runtime s exec metoder tillader dig at køre eksterne programmer fra et Java-program. Udfører eksterne applikationer inden for et Java- program giver dig mulighed for at åbne en webside i en browser , interagere med operativsystemet forsyningsselskaber eller starte en konsol -vinduet. Få Runtime Environment
Alle Java-programmer har en forekomst af runtime environment . Brug Runtime s getRuntime ( ) metode til at få adgang til dette objekt. For eksempel : Hej
Runtime rt = Runtime.getRuntime ();
Udfør et eksternt program
Runtime tilbyder flere måder at ringe til exec metoden , som returnerer et Process objekt. Den enkleste måde at udføre et eksternt program er den Runtime metode exec (String kommando) , hvor " kommandoen " er den kommandolinje, udfører programmet. Følgende opkald udfører " ls" kommando til at få en mappe notering for rodmappen på en Linux eller Unix-system : Hej
Process p = rt.exec ( " ls /");
exec metoden kan også kaldes med et array indeholdende kommando og sine argumenter , miljøvariabelindstillingerne og arbejde directory .
Få Process Information
Process klasse giver adgang til input stream , output stream , fejl stream og udgang værdien af det udførte proces.
Process.getInputStream metoden giver adgang til processen "standard output stream via din ansøgning input stream . Strømmen bør pufres . Fortsat det foregående eksempel følgende kode adgang outputtet fra " ls /" kommando udskriver resultaterne
InputStream istrm = p.getInputStream (); . InputStreamReader istrmrdr = new InputStreamReader ( istrm ) BufferedReader buffrdr = nye BufferedReader ( istrmrdr )
String data , mens ( (data = buffrdr.readLine ( )) = null !) { System.out.println ( data) ;}
samme måde, du kan fange fejlen streamen via processen " getErrorStream og bruge en buffer input stream til at håndtere data. Din ansøgning kan også sende data til processen ' input stream via din ansøgning output stream. Brug processen " getOutputStream metode og buffer den udgående strøm .
Spændende
Fang exit værdien af processen med processen" exitValue metode til at afgøre, om det forlades normalt. Sikre, at processen har forladt hjælp Proces ' waitFor metode til at få den aktuelle tråd til at vente på, at processen for at afslutte. For eksempel fange exit værdi i en variabel , som kan bruges senere til at træffe beslutninger om, hvordan din ansøgning vil fortsætte : Hej
int ev = 0; if (! P.waitFor ( ) = 0 ) { ev = p.exitValue ( );}
En proces, kan aflives ved hjælp af processen " ødelægge metode
Overvejelser
Java 5 introducerede ProcessBuilder klasse til udskift Runtime.exec . ProcessBuilder gør det lettere at tilpasse processen og giver bedre kontrol over at starte processen.
Advarsler
En af de primære funktioner i programmeringssproget Java er dens portabilitet til flere platforme . Opkald eksterne processer , der er specifikke for et bestemt operativsystem holder din ansøgning fra at være bærbare. Undgå at bruge Runtime.exec når en metode til at opnå de samme mål findes i Java-sproget .