坛子里一位mxx123的兄弟发信问的问题,很对不起我这位论坛好友,有一阵子没上csdn。
想想csdn的大牛平日帮我解决问题的速度,自己很汗颜。
也许mxx123早解决了,但我还是把我的方法写一下,并给mxx123发信表示歉意。
我觉得可以分两步走:
1、读命令行,把命令行当做输入流读入
2、显示在SWING容器,可以把输入流输出到一个字符串,然后怎么显示字符串就很好处理了。
一下代码经过测试,可以正常运行。
zengzhi.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class zengzhi{
public static void main(String[] args) throws IOException {
//System.in 命令输入
//new InputStreamReader(System.in) 把命令写入输入流
//new BufferedReader(new InputStreamReader(System.in)) //使用缓存
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str;
//按行读取,如果命令为exit,退出
while (!(str = in.readLine()).equals("exit")) {
//如果命令不为exit,则赋值给字符春str, 打印str
System.out.println(str);
}
}
}
补充下另一种情况:
执行方法的时候,顺便输入一些参数,并把这些参数读出显示
test.java
import java.io.IOException;
public class test{
public static void main(String[] args) throws IOException {
for(String out : args){
System.out.println(out);
}
}
}
javac test.java //编译
java test 参数1 参数2 参数3 //参数之间空格隔开即可
====================================================
~~~~(>_<)~~~~ 我在“BufferedReader in = new BufferedReader(new InputStreamReader(System.in));”前加了一句“Process process = Runtime.getRuntime().exec("cmd /c ipconfig ");”来执行EXE可执行文件,可是没有任何输出啊,这是咋回事啊? %>_<%
因为调用外部方法产生的数据流并没有传回程序,所以没有输出。只需要把调用外部程序的进程的输入流读出来打印即可。
主要是:process.getInputStream();
可以执行下面的例子查看结果
zz.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class zz {
public static void main(String[] args) throws IOException {
Process process = Runtime.getRuntime().exec("cmd /c ipconfig ");
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
}
}