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.i
utputStream 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?
Så jeg har denne kode:
String command = "...";
String argument = "...";
process = Runtime.getRuntime().exec(command);
Og for at sende argumenterne:
java.i
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()
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?