gpt4 book ai didi

scala - 如何在 Scala 中捕获进程的输出

转载 作者:行者123 更新时间:2023-12-01 08:24:01 25 4
gpt4 key购买 nike

我试图通过 ProcessBuilder 捕获 sbt 启动的主类的输出,但这不起作用。我在这里错过了什么?

结果是打印在控制台而不是println

val result = Seq("sbt", "runMain example.Hello")
.#<(new ByteArrayInputStream("a".getBytes()))
.!!
println(s"result=$result")

最佳答案

我们在尝试使用直线时遇到了类似的情况。

这对我们有用:

val stdout = new StringBuilder
val stderr = new StringBuilder

var commandSeq = Seq("beeline"
, "-u"
, ConfigProvider.config.BeelineConfig.Url
, "-n"
, ConfigProvider.config.BeelineConfig.UserName
, "-p"
, ConfigProvider.config.BeelineConfig.Password
, "--outputformat=xmlattr"
, "-f"
, filePath)

hiveConfArgs.foreach(arg => {
commandSeq = commandSeq :+ "--hivevar"
commandSeq = commandSeq :+ arg
})

commandSeq ! ProcessLogger(stdout append _, stderr append _ + "\n")

(stdout.toString, stderr.toString)

关于scala - 如何在 Scala 中捕获进程的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56338343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com