I have a little problem with executing a command line tool. I want to execute UnRAR.exe from WinRAR. I do it like this:
Process process = runtime.exec("\"" + unrarPath + "\"" + " x -kb -vp " + "\"" + fileName + "\"", null, f.getParentFile());
My problem is that the compressed file is password protected. If I execute the command in my console I'm asked for a password. If I let Java execute it the program just ends and never waits for a user input (the password).
I tried to write to the process outputstream but that didn't work. Is there anything I need to know about the behavior of command line programs executed in "different" environments?
EDIT: Maybe I wasn't clear enough. My question is: Is it possible to interact with a command line program with Java?
Works for me. Perhaps you didn't write a newline and flush the stream?
Process tr = Runtime.getRuntime().exec( new String[]{ "cat" } );
Writer wr = new OutputStreamWriter( tr.getOutputStream() );
BufferedReader rd = new BufferedReader( new InputStreamReader( tr.getInputStream() ) );
wr.write( "hello, world\n" );
wr.flush();
String s = rd.readLine();
System.out.println( s );
http://ideone.com/OUGYv
+1 to your question, java.lang.Process
was what I was looking for!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With