设为首页 加入收藏

TOP

Java运行系统命令
2014-11-24 07:20:50 来源: 作者: 【 】 浏览:1
Tags:Java 运行 系统 命令

不过没有试过Windows下运行,试了一下,还是不错的,把代码做了一些调整,封装成对象,这样更方便多线程下调用,不用担心静态变量互相干扰的问题。


先看一下怎么用:


public static void main(String[] args) {
try {
Command command = new Command();
CommandResult result1 = command.exec("net stop nginx", 20000);
System.out.println("command executiion succeeds: " + result1.getOutput());
CommandResult result2 = command.exec("net start nginx", 20000);
System.out.println("command executiion succeeds: " + result2.getOutput());
} catch (CommandError ex) {
System.out.println("command execution failed: " + ex.getMessage());
}
}


由此可见,有三个类:Command, CommandResult和CommandError。


当命令不能运行,将会抛出CommandError异常对象。如果命令能够运行,不管是否成功或者失败,都返回CommandResult对象,里面有两个属性output和error,包含了执行成功的消息和错误消息。


CommandError.java代码:


package command;


/**
*
* @author shu6889
*/
public class CommandError extends Exception {


/**
* Creates a new instance of
* CommandError without detail message.
*/
public CommandError() {
}


/**
* Constructs an instance of
* CommandError with the specified detail message.
*
* @param msg the detail message.
*/
public CommandError(String msg) {
super(msg);
}

public CommandError(Throwable ex) {
super(ex);
}
}


CommandResult.java代码


package command;



/**
* Describe class CommandResult here.
*
*/
public class CommandResult {
public static final int EXIT_VALUE_TIMEOUT=-1;

private String output;


void setOutput(String error) {
output=error;
}


public String getOutput(){
return output;
}


int exitValue;


void setExitValue(int value) {
exitValue=value;
}


int getExitValue(){
return exitValue;
}


private String error;


/**
* @return the error
*/
public String getError() {
return error;
}


/**
* @param error the error to set
*/
public void setError(String error) {
this.error = error;
}
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java通过SSH2协议运行远程程序 下一篇Android 数据库存取图片

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)