今天带来Java程序执行Cmd指令所遇问题记录及解决方案教程详解
这篇是有关在编写 Java程序执行Cmd指令 时所遇到的问题记录,其中有一些是 个人的理解 ,如有问题望不吝赐教,感谢❤
Windows 命令提示符(cmd.exe)是 Windows NT 下的一个用于运行 Windows 控制面板程序或某些 DOS 程序的shell程序
1.执行Cmd命令的两种方式
(1)RunTime.getRunTime().exec(多种重载方式) - 会得到一个Process对象通过其start()方法开启一个新进程以执行输入的指令。
这种方法就不多说了,最后这种形式还是用到第二种方式的方法(Java Api文档中也推荐 使用第二种方式去创建一个Process对象 ):
* @see ProcessBuilder * @since 1.3 */ public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException { return new ProcessBuilder(cmdarray) .environment(envp) .directory(dir) .start(); }
(2).new ProcessBuilder().command(指令)
2.获取执行指令后的输出:
在这里就遇到点问题,
上面两种方式执行Windows自带的命令都没有什么问题(像Ping、Ipconfig)。但是当执行像“Java -version”这样的外部命令,其输出通过getInputStream()方法是拿不到的。
后来是通过参考网上资料,采用将子进程的输出重定向到文件中,再从文件中读取内容的方法:
// 外部程序的输出放到了错误信息输出流中,不将错误信息流输出到文件话,输出信息就看不到了查看更多关于Java程序执行Cmd指令所遇问题记录及解决方案的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did18451