我第一个JAVA程序终于完成了,是一个eclipse的控制台插件。本插件的目的是,实现一个通用的控制台,当启动一个进程时,将进程的输入输出显示在Console View中。
Console的使用,通过接口来完成。主要的方法是open和close。当然可以继续增加其它一些方法,如改变尺寸等
public interface IMyConsole {
void open();
void close();
...
}
希望使用时能够尽量简便,例如希望在eclipse中开启一个cmd控制台:
IMyConsole console;
...
ProcessBuilder builder = new ProcessBuilder("cmd.exe");
try {
Process proc = builder.start();
console = new ConsoleFactory("Windows cmd", null,
proc.getOutputStream(),
proc.getInputStream(),
proc.getErrorStream());
console.open();
} catch (IOException e) {
e.printStackTrace();
}
...
实例化console时候,需要指明控制台的stdin,stdout和stderr。这样就可以灵活用于各种情况,如执行一个进程、socket流、文件流等。同时,也可以指定只使用stdout和stderr,作为纯粹的输出控制台。当然,如果将这些用法再封装一层就好了。实例创建出来后,调用open()方法即可打开控制台。
类的框架如下:
(研究了几个小时UML,结果发现这东西不是一会就能玩明白的,干脆用土办法画图了) Continue reading