Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

blog

[Java] ProcessBuilder waitFor() error code 1 본문

Web/SpringBoot

[Java] ProcessBuilder waitFor() error code 1

hjkongkong 2022. 9. 14. 21:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
String cmd[] = new String[] {"나의""커맨드""명령어"};
 
ProcessBuilder builder = new ProcessBuilder(cmd);
 
try {
 
  Process process = builder.start();
 
  int exitVal = process.waitFor(); // wait for end of child process
 
  System.out.println("\nExited with error code : " + exitVal);
 
  if (exitVal != 0) {
 
    System.out.println("SUB PROCESS ABNORMAL TERMINATION");
 
    return result;
 
  }
 
catch (IOException e) {
 
  // TODO Auto-generated catch block
 
  e.printStackTrace();
 
  return result;
 
catch (InterruptedException e) {
 
  // TODO Auto-generated catch block
 
  e.printStackTrace();
 
  return result;
 
}
cs

Exited with error code : 1

일반 오류여서 헤맸는데...outputstream을 읽어주지 않아 발생한 오류였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
String cmd[] = new String[] {"나의""커맨드""명령어"};
 
ProcessBuilder builder = new ProcessBuilder(cmd);
 
try {
 
  builder.redirectErrorStream(true);
 
  Process process = builder.start();
 
  BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
 
  String line;
 
  while ((line = reader.readLine()) != null)
 
    System.out.println("tasklist: " + line);
 
  process.waitFor();
 
catch (IOException e) {
 
  // TODO Auto-generated catch block
 
  e.printStackTrace();
 
  return result;
 
catch (InterruptedException e) {
 
  // TODO Auto-generated catch block
 
  e.printStackTrace();
 
  return result;
 
}
cs

이렇게 고쳐서 해결

참고 :

https://stackoverflow.com/questions/5483830/process-waitfor-never-returns

https://d2.naver.com/helloworld/1113548