Eksternt program, STDIO & STDIN

W

WinstonSmith_101

Jeg har et eksternt program jeg skal eksekvere, som tager et argument.
Så jeg har denne kode:

String command = "...";
String argument = "...";
process = Runtime.getRuntime().exec(command);

Og for at sende argumenterne:

java.io_OutputStream out = process.getOutputStream();
out.write(argument.getBytes());
out.close();


Og for at læse fra output fra det eksterne program:

java.io.InputStream in = process.getInputStream();
int c;
while ((c = in.read()) != -1) {
System.out.print("OUT: " + (char)c);
}
in.close();

= = = = = = = = = = = = = = = = = =

Men problemet er at output fra det eksterne program ikke bliver læst.
Det bliver stadig sendt til stdio når input-strømmen bliver lukket
(in.close();) - men altså ikke af min kode.

Er der ikke en måde at eksekvere et eksternt program og samtidigt
både sende argumenter til det og fange dets output? Hver for sig
fungere de godt. Hvis det eksterne program ikke forventer input og jeg
ikke åbner OutputStream så opfanger c=read() outputtet fra det
eksterne program?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,015
Latest member
AmbrosePal

Latest Threads

Top