我正在尝试这样做,以便当用户单击按钮时,会出现一个新屏幕并自动运行命令行过程,并且他们能够看到此过程的输出。
我认为我可以使用JTextArea
将文字设置为。
这就是我现在所拥有的:
runButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent r)
{
JFrame runFrame = new JFrame("Running process...");
runFrame.setVisible(true);
runFrame.setSize(500, 400);
runFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
runFrame.setLayout(null);
JTextArea run = new JTextArea();
run.setBounds(100,50,300,200);
runFrame.add(run);
Runtime runtime = Runtime.getRuntime();
Process process = null;
try
{
process = runtime.exec("cat /cmd/h:/testfile");
}
catch (IOException e)
{
e.printStackTrace();
}
InputStream runStream = process.getInputStream();
InputStreamReader runStreamReader = new InputStreamReader(runStream);
BufferedReader br = new BufferedReader(runStreamReader);
String line;
StringBuilder sb = new StringBuilder();
try
{
while ((line = br.readLine()) != null)
{
sb.append(line);
}
}
catch (IOException e)
{
e.printStackTrace();
}
run.setText(sb.toString());
}
});
我得到的错误是:
无法运行程序“cat”:CreateProcess error = 2,系统找不到指定的文件
我试图测试打开一个文件来测试它,它只包含随机字母行。
编辑:
我不确定我是否清楚地解释了我需要做什么。 我想要的是在命令行中运行命令以打开文件。然后我希望命令行的结果输出到JTextArea。
编辑2:
我试图将命令更改为“ping riot.de -t”。这将经常ping暴乱服务器并返回响应时间的响应。
运行时,新框架只是黑色,java冻结了。
答案 0 :(得分:0)
也许你的java应用程序执行的env没有正确的cat cmd路径?你试着为cat命令指定绝对路径?