android - 在 Android 中以编程方式执行 shell 命令

标签 android shell process

我有两个命令来执行和取回数据 我的 .sh 文件作为两个命令,看起来像这样

苏 dhcpcd eth0

当我尝试在我的 Android 终端中键入 as 来执行 .sh 命令时 sh文件名.sh 它没有给我输出 但是当我通过输入单独的行来执行它时它起作用了。所以当我编程为

nativeProcess = Runtime.getRuntime().exec("su");
nativeProcess = Runtime.getRuntime().exec("dhcpcd eth0");
while ((line = br.readLine()) != null) 
{
    contents.append(line + "\n");
}

这有什么问题吗?我得到的输出内容为 null

最佳答案

Java 中的

exec 启动一个新进程。所以第一行创建了一个新的 su 进程,它将简单地坐在那里等待您的输入。第二行启动一个新的 dhcpcd 进程,该进程没有特权,因此不会产生有用的输出。

你想要的是使用 su 运行 dhcpcd,通常是这样的:

exec("su -c dhcpcd eth0")

关于android - 在 Android 中以编程方式执行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817008/

相关文章:

java - finish() 正在销毁我的对象

shell - 检查文件是否存在以及它是否包含特定字符串

linux - 如何使用 awk 查找一行或多行中具有相同值的行并添加这些值

c - wait 函数和 wexitstatus 中的状态值

android - 是否可以在 checkin TFS时使用ant构建Android项目?

android - 可变屏幕分辨率 Sprite 不缩放统一

node.js - 检测父进程何时退出

Java - 在什么情况下 JVM 可能会突然崩溃?

android - 我想在 ListView 中检测哪个 onFling 事件的 ListItem

linux - 通过 ENTER 或 ESC 等键在 bash 中创建中断