来源:自学PHP网 时间:2020-09-27 14:15 作者:小飞侠 阅读:次
[导读] Java程序执行Cmd指令所遇问题记录及解决方案...
今天带来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()方法是拿不到的。 后来是通过参考网上资料,采用将子进程的输出重定向到文件中,再从文件中读取内容的方法: // 外部程序的输出放到了错误信息输出流中,不将错误信息流输出到文件话,输出信息就看不到了 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com