我正在做一些需要我开始子处理(命令提示符)并在其上执行一些命令的事情。我需要从子进程获取输出并将其存储在文件或字符串中。
这是我到目前为止所做的,但它不起作用:
public static void main(String args[])
{
try
{
Runtime RT = Runtime.getRuntime();
String command = "cmd /c start javap java.lang.String";
File file = new File("write.txt");
Writer output = new BufferedWriter(new FileWriter(file));
BufferedReader br = new(BufferedReader(newInputStreamReader(RT.exec(command).getInputStream()));
String temp = br.readLine();
while(!temp.equals(null))
{
output.write(temp);
temp = br.readLine();
}
output.close();
RT.exec("exit");
}
catch(Exception e)
{
System.out.println(e);
}
}
开始更改:
new(BufferedReader(newInputStreamReader(
To:
new BufferedReader(new InputStreamReader(
编译看看是否还有问题
edit
另外,有一个很好的理由说明为什么您不应该捕获异常,您还可以捕获编程错误,例如NullPointerException
while( !temp.equals(null)) { //Throws NullPointerExceptin when temp is null
将其更改为:
while( temp != null ) { //!temp.equals(null)) {
最后,您不必“退出”,因为您实际上并不在命令内部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)