본문 바로가기
개발/Java

JAVA 에서 Linux 명령어 실행

by 용술이 2022. 4. 16.

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) {
        }
    }
}
반응형

댓글