开发过程中,很多时候需要shell脚本的支持某些系统层面的命令执行,譬如生成RSA秘钥文件等,这时候往往需要从高级语言中直接调用Shell脚本,完成命令执行,本文以一个例子为线索简单介绍一下如何实现在java中对系统命令的调用
1)Process
这是一个java提供的本地进程抽象,提供了整个生命周期的进程管理方法,进程信息输入、输出、状态监测、销毁等
2)Runtime.getRuntime().exec(*)
根据给定的字符串命令* 返回一个独立的执行进程
以下是一个java语言的DEMO,非常粗造,只是为了帮助理解
try {
Process executor = Runtime.getRuntime().exec(SHELL_SCRIPT_PATH);
executor.waitFor();
BufferedReader reader = new BufferedReader(neInputStreamReader(executor.getInputStream()));
String line = null;
StringBuilder result = new StringBuilder();
while ((line = reader.readLine()) != null ) {
result.append(line).append("\n");
}
System.out.println(result.toString());
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}