Java Runtime exec tutorial

Indlæg af Dorte Søndergaard Pe     opdateret: 2011-07-08

Java Runtime klasse giver adgang til runtime miljø, hvor programmet kører . Runtime 's exec metoder giver dig mulighed for at køre eksterne programmer fra en Java-program . Udfører eksterne applikationer inden for et Java-program kan du åbne en webside i en browser , interagere med et operativsystem forsyningsselskaber eller starte en konsol vindue

Du skal bruge:
kildekoden indeholder buffer overflow
. Compiler til sproget i denne kildekode .

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 :

Runtime rt=Runtime. getRuntime () ;

Udfør en ekstern applikation

Længde på flere måder at ringe til exec metode , der returnerer en proces objekt . Den enkleste måde at udføre et eksternt program er den Runtime metoden exec ( String kommando ) , hvor " kommandoen " er kommandolinjen , som henretter det ansøgningen . Følgende kald udfører " ls " kommando til at få en mappe notering for rodmappen på en Linux- eller Unix-system :

Process p=rt . exec ( " ls /");

Exec metode kan også kaldes med et array indeholdende kommandoen og dens argumenter , miljøvariablen indstillinger og arbejdsmappe.

Få Process Information

Process klassen giver adgang til input stream , output stream , fejl strøm og afslut værdi af de udførte processen .

Process. getInputStream Metoden giver adgang til den proces, " standard output stream via din ansøgning input stream . Åen skal være buffer . Fortsat det forrige eksempel , følgende kode har adgang til output fra " ls /" kommandoen udskriver resultaterne .

InputStream istrm=p. getInputStream () ;
InputStreamReader istrmrdr=nye InputStreamReader ( istrm )
BufferedReader buffrdr=nye BufferedReader ( istrmrdr )

String data ;
mens ( ( data=buffrdr. readLine () )=null ! ) {
System. out. println ( data ) ;
}

På samme måde kan du fange fejlen streamen via processen " getErrorStream og bruge en buffered input stream til at håndtere data . Din ansøgning kan også sende data til den proces 'input stream via din ansøgning output stream . Brug processen " getOutputStream metode og buffer den udgående strøm .

Afslutter

Capture afgangen værdien af den proces, der anvender processen " exitValue metode til at afgøre, om det forladt normalt . Sikre, at processen har forladt hjælp processen " waitFor metode til at fremkalde den nuværende tråd til at vente til 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 :

int ev=0 ;
hvis ( p. waitFor ( ) !=0 ) {
ev=s. exitValue () ;
}

En proces kan aflives ved hjælp af processen " ødelægge metode

Overvejelser

Java 5 introducerede ProcessBuilder klassen til at erstatte 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 Java- programmeringssproget er dens portabilitet til flere platforme . Opkald eksterne processer , der er specifikke for et bestemt operativsystem holder din ansøgning bliver bærbare . Undgå at bruge Runtime. exec når en metode til gennemførelsen af det samme mål findes i Java-sproget .


Previous:hvordan du installerer Java API Next:java 5 vs Java 6



 

Kommentarer

Code:
change