我在执行命令行工具时遇到了一些问题.我想从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)
给你的问题+1,java.lang.Process是我在寻找的!
| 归档时间: |
|
| 查看次数: |
26147 次 |
| 最近记录: |