java程序操作命令行
Posted shiyicode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序操作命令行相关的知识,希望对你有一定的参考价值。
使用
在写java项目时, 有些特殊情况下需要用到操作命令行, 以前用过好几次, 都是用的时候从网上找, 用完又忘记, 用一次找一次, 所以这次干脆将其保存在这里.
/**
* Created by shiyi on 16/8/30.
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Command
public static void exeCmd(String commandStr)
BufferedReader br = null;
try
Process p = Runtime.getRuntime().exec(commandStr);
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null)
sb.append(line + "\\n");
System.out.println(sb.toString());
catch (Exception e)
e.printStackTrace();
finally
if (br != null)
try
br.close();
catch (Exception e)
e.printStackTrace();
public static void main(String[] args)
String commandStr = "ping www.taobao.com";
Command.exeCmd(commandStr);
命令行执行主要是对Runtime.getRuntime().exec()这个函数进行调用, 上述代码对其进行了封装, 作为一个类, 在执行完命令后同时会将终端返回结果给输出出来.
特殊点
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系今天使用命令行的目的是在java程序里对数据库进行备份, 也就是对mysqldump进行使用, 但是程序运行后, 并没有预期的执行结果. 查了资料后知道java操作命令不能支持管道操作, 而mysqldump的使用中恰恰用到了管道.
这种方法的解决方案很简单, 就是先将要操作的命令存为脚本,
linux- x.sh window- x.bat 再在exec里开始执行脚本的命令,
linux- sh x.sh window- x.bat
就可以绕过管道的问题.
以上是关于java程序操作命令行的主要内容,如果未能解决你的问题,请参考以下文章