在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”,现在它返回正确的信息