Java 에서 리눅스의 명령어를 실행 해야 하는 경우가 생겼다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class App {
public static void main(String[] args) throws Exception {
System.out.println("Hello, World!");
String s;
Process p;
try {
String[] cmd = {"/bin/sh","-c","ps -ef | grep tomcat"};
p = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println(s);
p.waitFor();
System.out.println("exit: " + p.exitValue());
p.destroy();
} catch (Exception e) {
}
}
}
여러개의 명령어를 동시에 실행 하고자 하면 '&&' 혹은 ';' 를 이용하면 된다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class App {
public static void main(String[] args) throws Exception {
System.out.println("Hello, World!");
String s;
Process p;
try {
//이 변수에 명령어를 넣어주면 된다.
String[] cmd = {"/bin/sh","-c","ps -ef | grep tomcat && df -h"};
p = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println(s);
p.waitFor();
System.out.println("exit: " + p.exitValue());
p.destroy();
} catch (Exception e) {
}
}
}
반응형
'개발 > Java' 카테고리의 다른 글
Java Base64 인코딩, 디코딩 하는 방법 (0) | 2022.04.15 |
---|---|
[MyBatis] List를 이용하여 where문에서 in 처리 (0) | 2022.03.28 |
[Spring] CronSchedule 문법 (0) | 2022.03.18 |
[SpringBoot] Debug 실행 오류 (0) | 2022.03.15 |
java.util.LinkedHashMap cannot be cast to object (0) | 2021.07.26 |
댓글