Javas Runtime klassen ger åtkomst till runtime- miljö där programmet körs . Runtime : s exec metoder använder du för att köra externa program från en Java- applikation . Exekvera externa applikationer inom ett Java-program kan du öppna en webbsida i en webbläsare , interagera med operativsystemet verktyg eller lansera en konsol fönster . Få Runtime Environment
Alla Java-program har en instans av runtime miljön . Använd Runtime s getRuntime ( ) metod för att komma åt detta objektet . Till exempel :
Runtime rt = Runtime.getRuntime ( ) ;
Kör ett externt program
Runtime
erbjuder flera sätt att ringa exec metod , som returnerar en Process objekt . Det enklaste sättet att exekvera ett externt program är Runtime metoden exec ( String kommando ) , där " kommando " är kommandoraden som exekverar programmet . Följande samtal exekverar " ls " för att få en katalog notering för rotkatalogen på en Linux- eller Unix -system :
Process p = rt.exec ( " ls /" ) ;
Exec metoden kan också kallas med en matris som innehåller kommandot och dess argument , miljöinställningarna rörliga och arbetar katalog . Få Process Information
Process
klassen ger åtkomst till den ingående strömmen , utgående ström , fel ström och utgång värdet av den genomförda processen .
Process.getInputStream metoden ger tillgång till processen " standard output stream via programmets ingående ström . Strömmen bör vara buffrat . Fortsätter det tidigare exemplet anropar följande kod utsignalen från "ls /" kommandot skriver ut resultatet
InputStream istrm = p.getInputStream ( ) , . InputStreamReader istrmrdr = ny InputStreamReader ( istrm ) , BufferedReader buffrdr = nya BufferedReader ( istrmrdr ) ;
Strängdata , medan ( (data = buffrdr.readLine ( ) ) = null ) { System.out.println ( data) ;}
Likaså du kan fånga felet strömmen med Process " getErrorStream och använda en buffrad inmatningsflödet att hantera uppgifterna . Din ansökan kan även skicka data till processen "input stream via din ansökan utdataström . Använd Process " getOutputStream metod och buffra den utgående strömmen .
Avsluta
Fånga exit värdet av processen med hjälp av Process " exitValue metod för att bestämma om det avslutas normalt . Säkerställa att processen har lämnat med Process " WAITFOR metod för att få den aktuella tråden för att vänta på att processen för att avsluta . Till exempel , fånga exit värdet i en variabel , som kan användas senare för att fatta beslut om hur din ansökan kommer att fortsätta :
int ev = 0 ; if ( ! P.waitFor ( ) = 0 ) { ev = p.exitValue ( ) ;}
En process kan dödas med hjälp av process " förstöra metod
Överväganden
Java 5 introducerade ProcessBuilder klassen ersätta Runtime.exec . ProcessBuilder gör det lättare att anpassa processen och ger bättre kontroll över processen startas .
Varningar
En av de primära funktionerna i programmeringsspråket Java är dess portabilitet till flera plattformar. Ringa externa processer som är specifika för ett visst operativsystem håller din ansökan från att vara portabel . Undvik att använda Runtime.exec när en metod för att uppnå samma mål finns i Java .