为了账号安全,请及时绑定邮箱和手机立即绑定

在 Android 上运行 shell 命令不返回任何内容

在 Android 上运行 shell 命令不返回任何内容

小唯快跑啊 2023-02-23 16:52:57
几个小时以来,我一直在尝试获取命令的输出,但没有结果。有这个代码: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 位于该位置。
查看完整描述

1 回答

?
沧海一幻觉

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

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

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

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


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信