사용자가 단추를 클릭하면 새 화면이 나타나고 명령 줄 프로세스가 자동으로 실행되고이 프로세스의 출력을 볼 수 있도록하려고합니다.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가 정지됩니다.
Windows에서 실행 중이십니까? Windows에는'cat' 명령이 없습니다. – Jesper
은'/ cmd/h :/testfile'과 같은 것 같습니다. Windows에서 cygwin을 실행하고 있습니까? –
경로가 올바른지 확인하십시오. – Blobonat