Java実行システムファイル


次の2つの例は、Windowsのコマンドまたは実行可能ファイルを実行することです.

	//  Java  windows   exe  ,  notepad,calc  
	public static void openWinExe() {
		Runtime rn = Runtime.getRuntime();
		try {
			String command = "notepad";
			rn.exec(command);
		} catch (Exception e) {
			System.out.println("Error win exec!");
		}
	}

//           ,  :     exe,         .
	public static void openExe(String path) {
		Runtime rn = Runtime.getRuntime();
		try {
			rn.exec(path);
		} catch (Exception e) {
			System.out.println("Error exec!");
		}
	}

以下はbatファイルを実行し、このbatファイルの実行はパスに関連しています.

import java.io.BufferedReader;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TASK extends Thread {
	private String regex = "yyyyMMddHHmmssSSSS";
	private Date _inputTime = null;
	
	public TASK(String inputTime) {
		super();
		try {
			_inputTime = new SimpleDateFormat(regex).parse(inputTime);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	@Override
	public void run() {
		long time = _inputTime.getTime();
		for(;;){
			if(time == System.currentTimeMillis()){
				break;
			}
		}
		openBat();
	}
	
	public static void openBat(){
		try{
			String _dir = "C:\\udp";				//1. udp      
			String exeBat = "C:\\udp\\sender.bat";	//2. udp     
			File dir =  new File(_dir);
			Process child = Runtime.getRuntime().exec(exeBat,null,dir);
			InputStream in = child.getInputStream();
			BufferedReader br= new BufferedReader(new InputStreamReader(in));
			String line = br.readLine().toString();
			while(line!=null ){
			    System.out.println(line);
			    line = br.readLine().toString();
			}
			try{
			    child.waitFor();
			    br.close();
			    in.close();
			}catch (Exception e) {
			    e.printStackTrace();
			}
			}catch (Exception e) {
			    e.printStackTrace();
			}
	}

	public static void main(String[] args) {
		TASK task = new TASK("20100929144800000");		//3.   
		task.start();
		
		//javac TASK.java
		//java TASK
	}
}