[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