Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Java mať inštanciu dynamických knižníc . Použite metódu Runtime je getRuntime ( ) pre prístup k tomuto objektu . Napríklad :
Runtime rt = Runtime.getRuntime ( ) ;
Vykonať externé aplikácie
Runtime ponúka niekoľko spôsobov , ako volanie exec metódu , ktorá vracia objekt procesu . Najjednoduchší spôsob , ako spúšťať externé aplikácie je metóda Runtime exec ( príkaz String ) , kde " príkaz " je príkazový riadok , ktorý spustí aplikáciu . Nasledujúce volanie spustí " ls " príkaz získať výpis adresára pre koreňového adresára na linuxovom alebo unixovom systému :
Process p = rt.exec ( " ls /" ) ;
exec metóda môže byť tiež volaná s radom obsahujúce príkaz a jeho argumenty , nastavením premennej prostredia a pracovný adresár .
Získať Process Informácie
proces trieda poskytuje prístup k vstupného prúdu , výstupného prúdu , chyba prúd a výstupné hodnoty vykonaného procesu .
metóda Process.getInputStream poskytuje prístup k procesu " štandardný výstup prúdu prostredníctvom vašej aplikácie vstupného prúdu . Prúd by mal byť do vyrovnávacej pamäte . Pokračovanie predchádzajúceho príkladu nasledujúci kód pristupuje výstup z " ls /" Príkaz vytlačí výsledky
InputStream Istra = p.getInputStream ( ) ; . InputStreamReader istrmrdr = new InputStreamReader ( Istra ) ; BufferedReader buffrdr = nová BufferedReader ( istrmrdr ) ;
String dát ; while ( ( dáta = buffrdr.readLine ( ) ) = null ! ) { System.out.println ( dáta ) ; }
Podobne si môže zachytiť chyby prúdu pomocou procesu " getErrorStream a pomocou vyrovnávacej pamäti vstupný prúd spracovať dáta . Vaša aplikácia môže tiež odosielať dáta do procesu " vstupného prúdu cez výstupný prúd vašej aplikácie . Použite Process " metóda getOutputStream a vyrovnávacej výstupný prúd .
Ukončenie
Zachyťte hodnotu výstupnej procesu pomocou systému ' metódy exitValue zistiť , či je vystúpil normálne . Uistite sa , že proces vystúpil pomocou systému ' metódy WAITFOR spôsobiť aktuálne vlákno čakať na proces ukončiť . Napríklad zachytenie výstupnú hodnotu do premennej , ktorá môže byť použitá neskôr pri rozhodovaní o tom , ako vaša žiadosť bude prebiehať :
int ev = 0 ; if ( p.waitFor ( ) = 0 ! ) { Ev = p.exitValue ( ) ; }
proces môže byť zabitý pomocou systému ' metódy
klipart zničiť
Úvahy
Java 5 predstavil triedu ProcessBuilder na nahradiť Runtime.exec . ProcessBuilder uľahčuje prispôsobiť proces , a poskytuje lepšiu kontrolu nad začatím procesu .
Varovanie
Jedným z hlavných rysov programovacieho jazyka Java je jeho prenosnosť na viacerých počítačových platformách . Volanie externé procesy , ktoré sú špecifické pre konkrétny operačný systém udržuje vašu žiadosť z bytia prenosné . Vyhnite sa použitie Runtime.exec keď existuje spôsob pre dosiahnutie rovnakého cieľa v jazyku Java .