BLA*net OnLine Service

Sidst rettet: 28. august 2000


Udfør ikke-javaprogrammer

Spørgsmål

Hvordan kan man køre f.eks. UNIX-programmer fra java og få fat i output fra disse?

Svar

Ved at udføre metoden exec(), der svarer til exec-procedurerne i UNIX. Metoden returner et objekt af typen Process, og i denne kan man hente streams-objekter til current input, og current output og current error. exec() er IKKE static i Runtime (de fleste andre metoder er!) Derfor skal vi have fat i vores Runtime-objekt først, og det sker med getRuntime() klassemetoden i Runtime.

I nedenstående eksempel har jeg valgt at bruge filterklasser til at konvertere til Reader/Writer (UNICODE) i java-programmet. Det er egentlig ikke nødvendig i dette eksempel.

Bemærk, at stream-retningen er set fra javaprogrammet, så getOutputStream() henter altså current input til UNIX-programmet og omvendt.

Download

Kørselsresultat

My environment is java.lang.Runtime@80607ad
The command is exec'ed in java.lang.UNIXProcess@8060566
and output of the command is as follows:
-> RunACommand.class
-> RunACommand.java
-> run-a-command.html                          

Henvisninger

  • Se JDK dokumentation for java.lang.Runtime og java.lang.Process
Problemer? - Send e-post til Leif Erik Andersen på leander@blanet.dk
 

Kurser

Kursus og træning inden for BLA*nets kerneområder.

Danske Nyheder 

Dagligt nyhedsresume specielt for danskere og danskinteresserede i udlandet.

DilleSport Special

Specielle sportsbegivenheder med danske deltagelse.