2016-09-19 6 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, 시스템은 할 수 없습니다 지정한 파일을 찾으십시오.

테스트를 위해 파일을 테스트하려고했는데,이 파일에는 임의의 문자가 포함되어 있습니다.

편집 :

나는 내가이해야 할 일을 명확하게 설명 모르겠어요. 내가 원하는 것은 파일을 여는 명령 줄에서 명령을 실행하는 것입니다. 그런 다음 명령 줄 결과를 JTextArea에 출력하려고합니다.

편집 2 :

나는 "핑 (ping) riot.de -t"내 명령을 변경하기 위해 노력했다. 이렇게하면 서버가 자주 폭동을 일으키고 응답 시간과 함께 응답을 반환합니다.

이 작업을 실행하면 새 프레임이 검은 색으로 표시되고 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