添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
眼睛小的米饭  ·  使用 GDB ...·  2 周前    · 
温柔的铁板烧  ·  Exchange ...·  2 周前    · 
开朗的针织衫  ·  命令行接口 | XenServer 8·  2 周前    · 
听话的汤圆  ·  cmd ...·  1 周前    · 
另类的木瓜  ·  入门: ...·  1 周前    · 

几个小时以来,我一直在尝试获取命令的输出,但没有结果。有这个代码:


val byteArry = ByteArray(1024)

var Holder: String = ""

try {

val processBuilder = ProcessBuilder("/system/bin/ls")

val process = processBuilder.start()

val  inputStream = process.getInputStream()

while (inputStream.read(byteArry) !== -1) {

Holder += String(byteArry)

}

inputStream.close()

} catch (ex: IOException) {

ex.printStackTrace()

}

println("Output: " + Holder)

我正在尝试使用不同的(kotlin 和 java)方法从任何命令接收一些输出,但我什么也没收到。也没有错误。使用 Android Studio 中的文件资源管理器,我可以看到 ls 位于该位置。


查看完整描述

TA贡献1725条经验 获得超5个赞

我猜发生了错误。 ProcessBuilder.redirectErrorStream 您可以通过设置(之前)来检查它以 start() 使其达到给定 inputStream ,或者通过调用来简单地获取一个单独的 InputStream 错误 Process.getErrorStream()

目前尚不清楚您要实现的目标,因此很难给您明确的答案。您当前的代码只是试图运行位于 /system/bin/ls (来自工作目录)的进程。如果您实际上正在尝试 ls 为目录运行 /system/bin/ ,您将希望将目录作为参数发送给 ProcessBuilder ,如下所示:

  val processBuilder = ProcessBuilder("ls", "/system/bin/")


查看完整回答