首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows cmd-output (Java)

Windows cmd-output (Java)
EN

Stack Overflow用户
提问于 2012-08-02 23:31:41
回答 3查看 1.6K关注 0票数 1

我找到了这个主题,但是代码对我不起作用...Return Windows cmd text from Java?

按下一个按钮后,我想执行一个批处理文件,出于测试目的,它只是ipconfig-命令。

cmd-output应该写入到JTextFiled中,但我得到的都是没有文本...

下面是将其写入JTextField的代码:

代码语言:javascript
运行
复制
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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-02 23:46:15

尝试使用只接受一个字符串参数的exec命令。下面的测试代码在我的系统上工作(尽管我只打印到控制台,而不是文本字段):

代码语言:javascript
运行
复制
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方法。

票数 3
EN

Stack Overflow用户

发布于 2012-08-02 23:34:32

如果我运行

代码语言:javascript
运行
复制
 ipconfig ""

我得到了

代码语言:javascript
运行
复制
** Error: unrecognized or incomplete command line.**

您只能从Java运行,这些命令在命令行上起作用。

顺便说一句:如果你正在寻找错误,你需要读取错误流。

票数 3
EN

Stack Overflow用户

发布于 2012-08-02 23:35:32

我会使用Runtime.getRuntime().exec(new String[] {"ipconfig > temp.txt"});,然后使用BufferedReader将其作为文本文件读取。

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11780923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档