Java执行命令
来源:互联网 发布:linux 安装ntp服务器 编辑:程序博客网 时间:2024/05/10 09:10
在java程序中有时候需要调用操作系统的一些功能,特别是在unix/linux环境下,命令行提供了很多有用功能。比如启动或者停止服务。我写个简单的程序,可以帮助理解。
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CommandLine {
public static void main(String[] args) throws IOException {
if (args == null || args.length == 0) {
System.out.println("请输入命令行参数(例:java CommandLine 'netstat')");
} else {
String cmd = "";
for (int i = 0; i < args.length; i++)
cmd += " " + args[i];
try {
Runtime run = Runtime.getRuntime();
Process p = run.exec(cmd);//启动另一个进程来执行命令
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
BufferedInputStream err = new BufferedInputStream(p.getErrorStream());
BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
BufferedReader errBr = new BufferedReader(new InputStreamReader(err));
String lineStr;
while ((lineStr = errBr.readLine()) != null)
System.out.println(lineStr);
while ((lineStr = inBr.readLine()) != null)
System.out.println(lineStr);
//检查命令是否执行失败。
try {
if (p.waitFor()!=0) {
if(p.exitValue()==1)//p.exitValue()==0表示正常结束,1:非正常结束
System.err.println("命令执行失败!");
}
}catch (InterruptedException e){
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
执行程序:import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CommandLine {
public static void main(String[] args) throws IOException {
if (args == null || args.length == 0) {
System.out.println("请输入命令行参数(例:java CommandLine 'netstat')");
} else {
String cmd = "";
for (int i = 0; i < args.length; i++)
cmd += " " + args[i];
try {
Runtime run = Runtime.getRuntime();
Process p = run.exec(cmd);//启动另一个进程来执行命令
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
BufferedInputStream err = new BufferedInputStream(p.getErrorStream());
BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
BufferedReader errBr = new BufferedReader(new InputStreamReader(err));
String lineStr;
while ((lineStr = errBr.readLine()) != null)
System.out.println(lineStr);
while ((lineStr = inBr.readLine()) != null)
System.out.println(lineStr);
//检查命令是否执行失败。
try {
if (p.waitFor()!=0) {
if(p.exitValue()==1)//p.exitValue()==0表示正常结束,1:非正常结束
System.err.println("命令执行失败!");
}
}catch (InterruptedException e){
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
- Java执行命令
- java执行linux命令
- java执行Linux命令
- java执行ping命令
- java执行cmd命令
- java执行linux命令
- java执行Linux命令 .
- java 执行 cmd 命令
- java执行外部命令
- java执行shell命令
- java执行cd命令
- java执行CMD命令
- Java 执行系统命令
- os命令执行java
- java 执行 cmd 命令
- Java执行操作系统命令
- java 编译-执行 命令
- java执行cmd命令
- TCP与UDP的区别
- dos 命令集2---DOS 常用命令 (edit)
- 似是故人来
- 大阪第76天——大阪街头暴走(遭遇性骚扰)
- 这辈子我们还能在一起吗?
- Java执行命令
- Spring 总结用XML配置的十二个最佳实践
- 测试一下 WebSphere 6.x 对JSTL1.1的支持情况的代码
- 李香兰
- 用swt/jface进行开发的准备工作
- java经典笑话
- [转]ActiveReport系列随笔整理 (集合贴_共11篇)
- 此问题理解有误,删除之以防误倒别人
- 剪头发啦,实在不宜出门