Java / Kotlin запустить Runtime.getRuntime (). Exe c () с видимой командной строкой - PullRequest
0 голосов
/ 20 марта 2020

В моей системе windows я хотел бы использовать Runtime.getRuntime().exec(command) для запуска подпроцесса со сценарием python и открыть терминал командной строки, чтобы пользователи могли видеть, как работает процесс. Моя команда выглядит примерно так:

val command = "cmd /c python ~path_to_file~ ~args~"

Я знаю, что есть альтернативный метод для печати содержимого командной строки обратно в исходный терминал через что-то вроде:

import java.util.Scanner
fun main(args: Array<String>) {
    val proc = Runtime.getRuntime().exec("cmd /C dir") 
    Scanner(proc.inputStream).use {
        while (it.hasNextLine()) println(it.nextLine())
    }
}

Просто интересно, есть ли другой вариант, который я еще не видел.

1 Ответ

2 голосов
/ 20 марта 2020

Я думаю, вы должны использовать перенаправление ProcessBuilder:

fun main() {
    ProcessBuilder("cmd", "/C", "dir")
        .redirectOutput(ProcessBuilder.Redirect.INHERIT)
        .start()
        .waitFor()
}

Этот пример ведет себя так же, как ваш.

...