介绍
本文介绍Java调用本地可执行程序。
Java7
[codesyntax lang="java"]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* Java执行本地程序的demo
* @author suren
* @since jdk1.7
* 2017年3月20日
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
try {
System.out.println("prepare to exec");
Process process = runtime.exec("ipconfig"); //这里的参数是命令行
//获取命令行程序的输出内容
try(InputStream input = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input)))
{
String line = null;
while((line = reader.readLine()) != null)
{
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
[/codesyntax]
Java8
[codesyntax lang="java"]
import java.io.IOException;
import java.util.concurrent.TimeUnit;
/**
* Java执行本地程序的demo
* @author suren
* @since jdk1.8
* 2017年3月20日
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
try {
System.out.println("prepare to exec");
Process process = runtime.exec("notepad"); //这里的参数是命令行
System.out.println("already exec");
process.waitFor(3, TimeUnit.SECONDS);
System.out.println("wait timeout exec");
System.out.println(process.isAlive()); //判断程序是否还存在
process.destroyForcibly(); //强制停止程序
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
[/codesyntax]
查看原文:http://surenpi.com/2017/03/24/java_exec_local_progress/