ユーザーがボタンをクリックすると、新しい画面が表示され、自動的にコマンドラインプロセスが実行され、このプロセスの出力を見ることができるようにしようとしています。Javaのコマンドラインでファイルを読む
私は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());
}
});
私はこれを取得していますエラーは次のとおりです。システムができない、のCreateProcessエラー= 2:
はプログラム「猫」を実行することはできません指定されたファイルを見つける
これをテストするためにファイルをテストしようとしましたが、ランダムな文字の行だけが含まれています。
EDIT:
私は私がこれは何をする必要があるか明確に説明よく分かりません。 私が望むのは、ファイルを開くコマンドラインでコマンドを実行することです。次に、コマンドラインの結果をJTextAreaに出力します。
EDIT 2:
私は "ピングriot.de -t" に私のコマンドを変更しようとしました。これはサーバを頻繁にpingし、応答時間とともに応答を返します。
これを実行すると、新しいフレームが黒くなり、Javaがフリーズします。
Windowsでこれを実行していますか? Windowsには 'cat'コマンドはありません。 – Jesper
は '/ cmd/h:/ testfile'のようには見えません。 Windowsでcygwinを実行していますか? –
パスが正しいかどうか確認してください。 – Blobonat