java运行cmd命令后获取返回信息的问题!看一下代码!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java运行cmd命令后获取返回信息的问题!看一下代码!相关的知识,希望对你有一定的参考价值。
import java.io.BufferedReader;import java.io.InputStreamReader;public class Main public static void main(String[] args) BufferedReader br = null; try Process p = Runtime.getRuntime().exec("c:\\windows\\audio\\ffmpeg -i c:\\windows\\audio\\1001.wav"); // Process p = Runtime.getRuntime().exec("dasdsads"); StringBuffer sbOut = new StringBuffer(1000); br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; while ((line = br.readLine()) != null) System.out.println(line); catch (Exception e) e.printStackTrace(); finally if (br != null) try br.close(); catch (Exception e) e.printStackTrace();
代码是这样!!如果运行 ipconfig 之类的东西 可以获取返回的信息
不过我运行这个命令就获取不到返回的信息了,不过自己输入这个命令 就有输出结果的啊!
我自己在命令符输入命令 就有返回信息!怎么回事?为什么获取不到呢?
如果没错的话,是因为你只读取了标准输出。而看你的截图应该同时读取错误输出。
抱歉我没有 ffmpeg 你先自己试一下。
参考技术B 想问下楼主最后怎么解决的,谢谢,能贴上代码吗? 参考技术C 加上这个process.waitFor( );python cmd命令调用
关于python调用cmd命令:
主要介绍两种方式:
1.python的OS模块。
OS模块调用CMD命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用。
os.system是无法获取返回值的。当运行结束后接着往下面执行程序。用法如:OS.system("ipconfig").
OS.popen带返回值的,如何获取返回值。如
p=os.popen(cmd)
print p.read().得到的是个字符串。
这两个都是用当前进程来调用,也就是说它们都是阻塞式的。
2.管道subprocess模块。
运行原理会在当前进程下面产生子进程。
sub=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
sub.wait()
print sub.read()
以上是关于java运行cmd命令后获取返回信息的问题!看一下代码!的主要内容,如果未能解决你的问题,请参考以下文章
Java代码调用cmd中的ping命令.如何获得ping返回的信息?