java代码执行linux命令_java执行Linux命令的方法
本文实例讲述了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命令的方法相关推荐
- Flink系列之:Java代码实现深入浅出的理解Flink算子的使用方法
Flink系列之:Java代码实现深入浅出的理解Flink算子的使用方法 一.Map算子 二.filter算子 三.flatMap算子 四.keyBy算子 五.Reduce算子 六.union算子 七 ...
- java cd命令_java执行cd命令
如果要在java程序里执行一条linux可以用下面的写法 Process process = Runtime.getRuntime().exec(cmd);process.waitFor(); 但是当 ...
- 用纯Java代码根据IP获取windows和linux的MAC物理地址
一.环境介绍 1.最近在使用struts2和JSP开发web网页时,碰到一个问题,我需要在后台根据ip获取访问服务器的物理地址,然后进行其他业务处理,但是我发现我在后台没有对应的接口或函数能够满足我. ...
- java 获取内存大小_JVM面试题扩展:Java代码在JVM中的执行流程
代码示例: public class Test { // 常量 public static final String MAN_SEX_TYPE = "man"; // 静态变量 p ...
- java 定时任务只执行一次_Java执行定时任务
一.用java.util.Timer 使用JAVA类Timer可实现简单的延迟和周期性任务,其中的任务使用java.util.TimerTask表示.任务的执行方式有两种: 按固定速率执行:即sche ...
- java 代码块的作用_Java核心(三):代码块的作用
Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...
- java代码块的定义_Java几种代码块的定义与常见问题
Java几种代码块的定义与常见问题 代码块,通俗的说就是用一对"{}"括起来的一段代码,代码块可以根据位置分为以下几类: 局部代码块:局部代码块就是指直接在方法或是语句中定义的代码 ...
- java代码解决的问题_java代码规范问题及解决方案
java代码规范问题总结 1.没有总是检查ResultSet结果对象 解决方案是通过if判断ResultSet结果是有有元素,常用条件是ResultSet结果的next,previous,first, ...
- java代码块是什么_Java代码块
1.普通代码块: 局部代码块,在方法中出现:限定变量生命周期,及早释放,提高内存利用率. 2.构造代码块: 在类中方法外出现:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法 ...
- 在线运行java代码并得到结果_Java代码是如何运行的?
作为一名Java程序员,你应该知道Java有很多种运行方式.比如说可以在开发工具中运行,可以双击jar包运行,可以在网页端运行.当然这些运行方式都离不开JRE「也就是java运行时环境」. 实际上, ...
最新文章
- ajax java请求413_jQuery - 拦截所有Ajax请求(统一处理超时、返回结果、错误状态码 )...
- GoCD 19.2.0 发布,ThoughtWorks 的持续集成引擎
- CentOS7 通过 YUM 升级 VIM8
- 速冻果蔬青麦源品牌-农业大健康·李喜贵:谋定功能性技术
- linux查看终端进程,Linux查看进程
- Spark 101:它是什么,它做什么以及为什么起作用
- python turtle画简单树_大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
- java原理教程,java基础之运行原理(一),java基础运行原理
- MarkdownPad2
- 阿里Goldeneye业务监控平台之架构演进,如何实时处理100T+/天的日志量?
- 电脑上最好的5个azw3阅读器
- Axure RP工具介绍
- Cloudflare CNAME 接入满血复活,一分钱不用花!
- 菜鸟入门_Python_机器学习(1)_线性可分的双月实验
- 打计算机游戏用英语怎么说,打游戏用英语怎么说
- 《信号与系统学习笔记》—连续时间博里叶变换(一)
- 算法——递归与递推[蓝桥杯]
- java多线程-爬电影天堂上的电影下载地址
- 想成为注塑模具设计高手:这个你一定要懂
- 计算机科学与技术与光电,光电信息科学与工程考研科目有哪些?
热门文章
- 神圣的NLP!一文理解词性标注、依存分析和命名实体识别任务
- Ubuntu 16.04安装Cobbler 2.9
- xtrabackup支持的engine
- 未来数据中心的五大“走心”创新
- JVM类加载机制详解(一)JVM类加载过程
- BIOS设置开机密码
- Pascal's Triangle 2(leetcode java)
- jQuery EasyUI使用教程之创建标签页
- [家里蹲大学数学杂志]第036期泛函分析期末试题
- 一篇男人必看的创业文章。(人活着不能没有钱,但是活着却不能只为了钱)...