1
回答
runtime.exec 的问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

谁能讲一下dos那个黑窗口的原理啊?
runtime.exec(...)执行完一条就结束了,比如"cmd /c dir"就会得到当前目录下的文件,但是不能像黑窗口里那样一条条cd命令找下去,这个有什么办法吗?

我知道研究这个没什么用,只是想搞明白而已,呵呵。。

public class ProcTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Process process = null;
		try {
			process = Runtime.getRuntime().exec("cmd /c dir");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		new Thread(new ProcRunnable(process.getInputStream())).start();
		new Thread(new ProcRunnable(process.getErrorStream())).start();
		/* 下面的代码是我想outputstream一条一条输入命令,但是没用,这个怎么办呢?
		 * PrintWriter out = new PrintWriter(process.getOutputStream());
		java.util.Scanner in = new java.util.Scanner(System.in);
		while(in.hasNextLine()){
			out.write(in.nextLine());
			out.flush();
		}*/
	}
}
class ProcRunnable implements Runnable{

	InputStream inputStream = null;
	String name;
	public ProcRunnable(InputStream inputStream){
		this.inputStream = inputStream;
		
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		java.util.Scanner scanner = new java.util.Scanner(inputStream);
		while(scanner.hasNextLine()){
			System.out.println(scanner.nextLine());
		}
		
		scanner.close();
		try {
			inputStream.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

举报
leo-H
发帖于6年前 1回/171阅
顶部