Java呼叫本地可執行程式

u014249394發表於2017-03-24
  • 介紹

本文介紹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/

相關文章