[kotlin] 코틀린 표준 라이브러리에서 제공하는 시스템 명령어 실행 기능

코틀린 표준 라이브러리는 시스템 명령어를 실행하고 결과를 얻을 수 있는 기능을 제공합니다. 이를 통해 외부 프로그램을 실행하고 결과를 쉽게 처리할 수 있습니다.

1. ProcessBuilder 클래스 활용

ProcessBuilder 클래스를 사용하여 시스템 명령어를 실행할 수 있습니다. 아래는 간단한 예제 코드입니다.

import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    val command = "ls"
    val process = ProcessBuilder(command).start()
    val reader = BufferedReader(InputStreamReader(process.inputStream))
    var line: String?

    while (reader.readLine().also { line = it } != null) {
        println(line)
    }
}

위 코드는 ls 명령어를 실행하고 결과를 출력합니다.

2. 외부 프로그램 실행 및 결과 처리

외부 프로그램을 실행한 후 결과를 쉽게 처리할 수 있습니다. 다음 예제는 ProcessBuilder를 사용하여 외부 프로그램을 실행하고 결과를 얻는 방법을 보여줍니다.

fun executeCommand(command: String): String {
    val process = ProcessBuilder(command).start()
    val reader = BufferedReader(InputStreamReader(process.inputStream))
    val output = StringBuilder()
    var line: String?

    while (reader.readLine().also { line = it } != null) {
        output.append(line).append("\n")
    }

    return output.toString()
}

위의 executeCommand 함수를 사용하면 주어진 명령어를 실행한 결과를 문자열로 얻을 수 있습니다.

3. 보안 주의사항

시스템 명령어를 실행할 때 보안상 주의할 점이 있습니다. 입력값을 최소화하고, 사용자 입력을 직접 명령어에 포함하지 않도록 주의해야 합니다.

4. 결론

코틀린 표준 라이브러리의 ProcessBuilder 클래스를 활용하면 시스템 명령어를 쉽게 실행하고 결과를 처리할 수 있습니다.

참고: 코틀린 표준 라이브러리 - ProcessBuilder