本文实例讲述了java执行Linux命令的方法。分享给大家供大家参考。具体实现方法如下:

public class StreamGobbler extends Thread {

InputStream is;

String type;

public StreamGobbler(InputStream is, String type) {

this.is = is;

this.type = type;

}

public void run() {

try {

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

String line = null;

while ((line = br.readLine()) != null) {

if (type.equals("Error")) {

System.out.println("Error   :" + line);

} else {

System.out.println("Debug:" + line);

}

}

} catch (IOException ioe) {

ioe.printStackTrace();

}

}

}

private void shell(String cmd)

{

String[] cmds = { "/bin/sh", "-c", cmd };

Process process;

try

{

process = Runtime.getRuntime().exec(cmds);

StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Error");

StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "Output");

errorGobbler.start();

outputGobbler.start();

try

{

process.waitFor();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

catch (IOException e)

{

e.printStackTrace();

}

}

其中参数 cmd 为Linux命令。每次只能执行一条命令。

1.Java Runtime.exec()注意事项:

① 永远要在调用waitFor()方法之前读取数据流

② 永远要先从标准错误流中读取,然后再读取标准输出流

2.最好的执行系统命令的方法就是写个bat文件或是shell脚本。

希望本文所述对大家的Java程序设计有所帮助。

java代码执行linux命令_java执行Linux命令的方法相关推荐

  1. Flink系列之:Java代码实现深入浅出的理解Flink算子的使用方法

    Flink系列之:Java代码实现深入浅出的理解Flink算子的使用方法 一.Map算子 二.filter算子 三.flatMap算子 四.keyBy算子 五.Reduce算子 六.union算子 七 ...

  2. java cd命令_java执行cd命令

    如果要在java程序里执行一条linux可以用下面的写法 Process process = Runtime.getRuntime().exec(cmd);process.waitFor(); 但是当 ...

  3. 用纯Java代码根据IP获取windows和linux的MAC物理地址

    一.环境介绍 1.最近在使用struts2和JSP开发web网页时,碰到一个问题,我需要在后台根据ip获取访问服务器的物理地址,然后进行其他业务处理,但是我发现我在后台没有对应的接口或函数能够满足我. ...

  4. java 获取内存大小_JVM面试题扩展:Java代码在JVM中的执行流程

    代码示例: public class Test { // 常量 public static final String MAN_SEX_TYPE = "man"; // 静态变量 p ...

  5. java 定时任务只执行一次_Java执行定时任务

    一.用java.util.Timer 使用JAVA类Timer可实现简单的延迟和周期性任务,其中的任务使用java.util.TimerTask表示.任务的执行方式有两种: 按固定速率执行:即sche ...

  6. java 代码块的作用_Java核心(三):代码块的作用

    Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...

  7. java代码块的定义_Java几种代码块的定义与常见问题

    Java几种代码块的定义与常见问题 代码块,通俗的说就是用一对"{}"括起来的一段代码,代码块可以根据位置分为以下几类: 局部代码块:局部代码块就是指直接在方法或是语句中定义的代码 ...

  8. java代码解决的问题_java代码规范问题及解决方案

    java代码规范问题总结 1.没有总是检查ResultSet结果对象 解决方案是通过if判断ResultSet结果是有有元素,常用条件是ResultSet结果的next,previous,first, ...

  9. java代码块是什么_Java代码块

    1.普通代码块: 局部代码块,在方法中出现:限定变量生命周期,及早释放,提高内存利用率. 2.构造代码块: 在类中方法外出现:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法 ...

  10. 在线运行java代码并得到结果_Java代码是如何运行的?

    作为一名Java程序员,你应该知道Java有很多种运行方式.比如说可以在开发工具中运行,可以双击jar包运行,可以在网页端运行.当然这些运行方式都离不开JRE「也就是java运行时环境」. 实际上, ...

最新文章

  1. ajax java请求413_jQuery - 拦截所有Ajax请求(统一处理超时、返回结果、错误状态码 )...
  2. GoCD 19.2.0 发布,ThoughtWorks 的持续集成引擎
  3. CentOS7 通过 YUM 升级 VIM8
  4. 速冻果蔬青麦源品牌-农业大健康·李喜贵:谋定功能性技术
  5. linux查看终端进程,Linux查看进程
  6. Spark 101:它是什么,它做什么以及为什么起作用
  7. python turtle画简单树_大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
  8. java原理教程,java基础之运行原理(一),java基础运行原理
  9. MarkdownPad2
  10. 阿里Goldeneye业务监控平台之架构演进,如何实时处理100T+/天的日志量?
  11. 电脑上最好的5个azw3阅读器
  12. Axure RP工具介绍
  13. Cloudflare CNAME 接入满血复活,一分钱不用花!
  14. 菜鸟入门_Python_机器学习(1)_线性可分的双月实验
  15. 打计算机游戏用英语怎么说,打游戏用英语怎么说
  16. 《信号与系统学习笔记》—连续时间博里叶变换(一)
  17. 算法——递归与递推[蓝桥杯]
  18. java多线程-爬电影天堂上的电影下载地址
  19. 想成为注塑模具设计高手:这个你一定要懂
  20. 计算机科学与技术与光电,光电信息科学与工程考研科目有哪些?

热门文章

  1. 神圣的NLP!一文理解词性标注、依存分析和命名实体识别任务
  2. Ubuntu 16.04安装Cobbler 2.9
  3. xtrabackup支持的engine
  4. 未来数据中心的五大“走心”创新
  5. JVM类加载机制详解(一)JVM类加载过程
  6. BIOS设置开机密码
  7. Pascal's Triangle 2(leetcode java)
  8. jQuery EasyUI使用教程之创建标签页
  9. [家里蹲大学数学杂志]第036期泛函分析期末试题
  10. 一篇男人必看的创业文章。(人活着不能没有钱,但是活着却不能只为了钱)...