I have a jar file that runs this code:
public class InputOutput { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { boolean cont = true; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while (cont) { System.out.print('Input something: '); String temp = in.readLine(); if (temp.equals('end')) { cont = false; System.out.println('Terminated.'); } else System.out.println(temp); } } }
I want to program another java class that executes this jar file and can get the input and send output to it. Is it possible? The current code I have is this but it is not working:
public class JarTest { /** * Test input and output of jar files * @author Jack */ public static void main(String[] args) { try { Process io = Runtime.getRuntime().exec('java -jar InputOutput.jar'); BufferedReader in = new BufferedReader(new InputStreamReader(io.getInputStream())); OutputStreamWriter out = new OutputStreamWriter(io.getOutputStream()); boolean cont = true; BufferedReader consolein = new BufferedReader(new InputStreamReader(System.in)); while (cont) { String temp = consolein.readLine(); out.write(temp); System.out.println(in.readLine()); } } catch (IOException e) { e.printStackTrace(); } } }
Thanks for your help
Using Runtime.exec is platform dependent.
If you’re using windows try prepending:
to
Something like:
See this also: Make system call and return stdout output.