我找到了这个主题,但是代码对我不起作用...Return Windows cmd text from Java?
按下一个按钮后,我想执行一个批处理文件,出于测试目的,它只是ipconfig-命令。
cmd-output应该写入到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的第一个项目,所以请不要因为我犯的愚蠢的错误而发疯。;)
Thx
发布于 2012-08-02 23:46:15
尝试使用只接受一个字符串参数的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方法。
https://stackoverflow.com/questions/11780923
复制相似问题