2016-09-19 5 views
-3

ユーザーがボタンをクリックすると、新しい画面が表示され、自動的にコマンドラインプロセスが実行され、このプロセスの出力を見ることができるようにしようとしています。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がフリーズします。

+1

Windowsでこれを実行していますか? Windowsには 'cat'コマンドはありません。 – Jesper

+0

は '/ cmd/h:/ testfile'のようには見えません。 Windowsでcygwinを実行していますか? –

+0

パスが正しいかどうか確認してください。 – Blobonat

答えて

0

多分あなたのJavaアプリケーションの実行のenvはcat cmdの正しいパスを持っていませんか? catコマンドの絶対パスを指定しようとしていますか?

+0

絶対パスを指定するにはどうすればよいですか? – Plumel

+0

端末を開き、次のコマンドを使用してください。 cat はcatコマンドの絶対パスを取得します。 これを試してみてください。 私は助けて欲しいと思う。 – aurox

+0

ありがとう、私はこれを試してみる。 – Plumel

関連する問題