我找到了这个主题,但代码对我不起作用... Return Windows cmd text from Java?
按下按钮后,我想执行一个批处理文件,出于测试目的,它只是 ipconfig 命令。
cmd 输出应该写入 JTextFiled,但我得到的只是没有文本...
这里是将它写入 JTextField 的代码:
btnLock.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String g = "";
try {
Runtime.getRuntime().exec(new String[] {"ipconfig", g});
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Process p = null;
try {
p = Runtime.getRuntime().exec(new String[] {"ipconfig", g});
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
InputStream s = p.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(s));
String temp;
try {
while ((temp = in.readLine()) != null)
{
System.out.println(temp);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnLock.setBounds(10, 68, 89, 23);
contentPane.add(btnLock);
那我做错了什么?
这是我第一个使用 cmd-input 的项目,所以请不要因为我犯的愚蠢错误而生气。 ;)
谢谢
最佳答案
尝试只接受一个字符串参数的exec
命令。以下测试代码在我的系统上运行(尽管我只打印到控制台,而不是文本字段):
BufferedReader in = null;
try{
Process p = Runtime.getRuntime().exec("ipconfig");
InputStream s = p.getInputStream();
in = new BufferedReader(new InputStreamReader(s));
String temp;
while ((temp = in.readLine()) != null) {
System.out.println(temp);
}
} catch (Exception e){
e.printStackTrace();
} finally {
if (in != null) in.close();
}
此外,您在原始帖子中的代码也使用了 System.out.println
。据我所知,您不能使用 System.out.println
...打印到 JTextField。您必须使用 setText
方法。
关于java - Windows 命令输出 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780923/