在java中读取命令行中的文件

在java中读取命令行中的文件,java,command-line,bufferedreader,jtextarea,Java,Command Line,Bufferedreader,Jtextarea,我试图让它,当用户点击一个按钮,一个新的屏幕出现,并自动运行一个命令行进程,他们能够看到这个进程的输出 我想我可以使用JTextArea来设置文本 以下是我目前掌握的情况: runButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent r) { JFrame runFrame = n

我试图让它,当用户点击一个按钮,一个新的屏幕出现,并自动运行一个命令行进程,他们能够看到这个进程的输出

我想我可以使用
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错误=2,系统找不到指定的文件

我试着打开一个文件来测试这个,它只包含了几行随机字母

编辑:

我不确定我是否清楚地解释了我需要做什么。 我想要的是在打开文件的命令行中运行命令。然后,我希望将命令行的结果输出到JTextArea

编辑2:

我试图将我的命令改为“ping-riot.de-t”。这将每隔一段时间访问一次服务器,并返回一个带有响应时间的响应


运行此命令后,新的框架变黑,java冻结。

可能java应用程序执行的环境没有正确的cat cmd路径?是否尝试为cat命令指定绝对路径

你在Windows上运行这个吗?Windows上没有
cat
命令。似乎
/cmd/h:/testfile
不存在。是否在windows上运行cygwin?请检查路径是否正确。无论主机操作系统如何,这都不是用Java打开文本文件的正确方法。您不需要将文件流式传输到标准输出来读取它。google关于如何用Java打开文本文件(提示,
FileReader
)查看如何指定绝对路径?打开终端并使用命令:哪只猫获取cat命令的绝对路径。试着用那个。我希望我能帮上忙谢谢,我会试试这个。你试着在终端上运行cat/cmd/h:/testfile命令吗?作品也许dirname“h:”会带来任何问题……它回来说cat不被识别为内部或外部命令、可操作程序或批处理文件。我已经将命令更改为“ipconfig”,现在它返回正确的信息