使用Java代码执行系统命令/shell命令, 并获取输出结果
2017-03-20 23:03
1076 查看
本文链接: http://blog.csdn.net/xietansheng/article/details/64129876
在 Java 代码中运行系统命令 / shell命令,并获取输出结果:
控制台输出结果:
在 Java 代码中运行系统命令 / shell命令,并获取输出结果:
package com.xiets.shell; import java.io.BufferedReader; import java.io.Closeable; import java.io.File; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { String result = execCmd("java -version", null); System.out.println(result); } /** * 执行系统命令, 返回执行结果 * * @param cmd 需要执行的命令 * @param dir 执行命令的子进程的工作目录, null 表示和当前主进程工作目录相同 */ public static String execCmd(String cmd, File dir) throws Exception { StringBuilder result = new StringBuilder(); Process process = null; BufferedReader bufrIn = null; BufferedReader bufrError = null; try { // 执行命令, 返回一个子进程对象(命令在子进程中执行) process = Runtime.getRuntime().exec(cmd, null, dir); // 方法阻塞, 等待命令执行完成(成功会返回0) process.waitFor(); // 获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入) bufrIn = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8")); bufrError = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8")); // 读取输出 String line = null; while ((line = bufrIn.readLine()) != null) { result.append(line).append('\n'); } while ((line = bufrError.readLine()) != null) { result.append(line).append('\n'); } } finally { closeStream(bufrIn); closeStream(bufrError); // 销毁子进程 if (process != null) { process.destroy(); } } // 返回执行结果 return result.toString(); } private static void closeStream(Closeable stream) { if (stream != null) { try { stream.close(); } catch (Exception e) { // nothing } } } }
控制台输出结果:
相关文章推荐
- java调用shell命令并获取执行结果
- java代码中执行shell或调用系统命令
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值
- Java开发之调用shell命令并获取执行结果(Mac)
- java调用shell命令并获取执行结果
- java调用shell命令并获取执行结果
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值(如果有的话)
- java 执行shell命令,并获取执行结果
- java调用shell命令并获取执行结果
- java调用shell命令并获取执行结果
- java调用shell命令并获取执行结果
- java调用shell命令并获取执行结果的示例
- 【java代码获取系统时间和执行定时任务】
- 【转】C#执行命令行程序/命令并获取输出结果
- 【java代码获取系统时间和执行定时任务】
- 在AWK中执行命令并使用getline输出全部结果
- 实现 java 执行 cmd 命令,打印输出,等待cmd 完全执行完成后才执行下面代码 .
- Perl 获取shell命令的执行结果
- linux使用popen读取shell命令执行结果
- 用NSTask执行外部命令并获取输出结果的方法