Java执行命令行程序

T3r*_*rm1 6 java command-line

我在执行命令行工具时遇到了一些问题.我想从WinRAR执行UnRAR.exe.我是这样做的:

Process process = runtime.exec("\"" + unrarPath + "\"" + " x -kb -vp " + "\"" + fileName + "\"", null, f.getParentFile());
Run Code Online (Sandbox Code Playgroud)

我的问题是压缩文件受密码保护.如果我在控制台中执行命令,则会要求输入密码.如果我让Java执行它,程序就会结束,永远不会等待用户输入(密码).

我试着写入流程输出流,但这不起作用.在"不同"环境中执行的命令行程序的行为是否需要了解?

编辑:也许我不够清楚.我的问题是:是否可以使用Java与命令行程序进行交互?

Pot*_*ter 11

适合我.也许你没有写新行并刷新流?

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 );
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/OUGYv

给你的问题+1,java.lang.Process是我在寻找的!