java - Java/Kotlin 使用可见的命令提示符运行 Runtime.getRuntime().exec()
问题描述
在我的 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())
}
}
只是想知道是否还有另一种我还没有看到的选择。
解决方案
我认为您应该使用ProcessBuilder
' 重定向:
fun main() {
ProcessBuilder("cmd", "/C", "dir")
.redirectOutput(ProcessBuilder.Redirect.INHERIT)
.start()
.waitFor()
}
此示例与您的行为相同。
推荐阅读
- visual-studio-2019 - Visual Studio Professional 2019 版本 16.10.0 无法在 SSDT 项目中打开 .sql 文件
- twilio - Twilio Autopilot 跳过启动任务
- c# - 匹配字符串后跟另一个字符串
- jquery - togglewidth jquery 不能使用百分比?
- ios - Swift Playground 和 Procreate 练习 - Ipad 相机无法打开
- android - 活动/片段开始时如何滚动到recyclerView中的位置
- swift - 如何在 Swift 中执行循环移位?
- react-native - 如何在一次 fetch 调用(React Native)中设置两种不同的状态?
- html - 使用不显示 html 图像的 Visual Studio
- node.js - 如何在 MongoDB node.js 中插入数据?