Java/Kotlin运行Runtime.getRuntime().exec(),命令提示符可见
在我的windows系统上,我想使用Java/Kotlin运行Runtime.getRuntime().exec(),命令提示符可见,java,kotlin,runtime.exec,Java,Kotlin,Runtime.exec,在我的windows系统上,我想使用Runtime.getRuntime().exec(command)启动一个带有python脚本的子进程,并打开命令提示符终端,以便用户可以看到进程正在工作。我的命令类似于: import java.util.Scanner fun main(args: Array<String>) { val proc = Runtime.getRuntime().exec("cmd /C dir") Scanner(proc.inputStr
Runtime.getRuntime().exec(command)
启动一个带有python脚本的子进程,并打开命令提示符终端,以便用户可以看到进程正在工作。我的命令类似于:
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())
}
}
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())
}
}
import java.util.Scanner
趣味主线(args:Array){
val proc=Runtime.getRuntime().exec(“cmd/C dir”)
扫描仪(过程输入流)。使用{
而(it.hasNextLine())println(it.nextLine())
}
}
只是想知道是否还有另一个选项我还没有看到。我认为您应该使用
ProcessBuilder
的重定向:
fun main() {
ProcessBuilder("cmd", "/C", "dir")
.redirectOutput(ProcessBuilder.Redirect.INHERIT)
.start()
.waitFor()
}
此示例的行为与您的相同。谢谢您的回答。我可以复制与上面相同的行为,但是没有显示输出的可见命令提示符/终端。我可以重新定向,但有没有办法强制打开终端?@PeptideWitch是的。尝试将
cmd/C dir
替换为cmd/C start dir