java - 使用 onClick 执行多个 shell 命令

标签 java android shell command runtime.exec

这是我正在尝试制作的示例:

final String[] hwdebug1 = {"su","-c","echo hello > /system/hello1.txt"};

                 try {
                     Runtime.getRuntime().exec(hwdebug1);              
                } catch (IOException e) {
                }            

所以,如果我点击我的按钮,它会完美地工作,但如果我做了类似的事情,它就不会工作:

final String[] hwdebug1 = {"su","-c","echo hello > /system/hello1.txt","echo hello > /system/hello2.txt","echo hello > /system/hello3.txt"};

我的目的是让按钮执行多个命令。我已经通过让它执行 bash 脚本来做到这一点,但我更喜欢找到一种将其放在代码中的方法。

谢谢!

用Ben75方法解决

final String[] hwdebug1 = {"su","-c","echo hello > /system/hello1.txt"};
final String[] hwdebug2 = {"su","-c","echo hello > /system/hello2.txt"};
final String[] hwdebug3 = {"su","-c","echo hello > /system/hello3.txt"};
ArrayList<String[]> cmds = new ArrayList<String[]>();
cmds.add(hwdebug1);
cmds.add(hwdebug2);
cmds.add(hwdebug3);
for(String[] cmd:cmds){
    try {
       Runtime.getRuntime().exec(cmd);              
   } catch (IOException e) {
       e.printStacktrace(); 
   }          
}

最佳答案

Runtime.exec 命令适用于单个命令,不是 cmd 行字符串的简单“包装器”。

只需创建一个列表并对其进行迭代即可:

final String[] hwdebug1 = {"su","-c","echo hello > /system/hello1.txt"};
final String[] hwdebug2 = {"su","-c","echo hello > /system/hello2.txt"};
final String[] hwdebug3 = {"su","-c","echo hello > /system/hello3.txt"};
ArrayList<String[]> cmds = new ArrayList<String[]>();
cmds.add(hwdebug1);
cmds.add(hwdebug2);
cmds.add(hwdebug3);
for(String[] cmd:cmds){
    try {
       Runtime.getRuntime().exec(cmd);              
   } catch (IOException e) {
       e.printStacktrace(); 
   }          
}

关于java - 使用 onClick 执行多个 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498177/

相关文章:

linux - rsync 在传输过程中以固定位置挂起

linux - 如何在 Linux 中从命令行读取电子邮件?

shell - 脚本未完成执行,但 cron 作业再次启动

java - WebDriver 使用隐式等待获取加载元素的时间

android - 证书签发: SSL page brings up "you need to set a lock screen pin or password before you can use credential storage" on Android

android - Andengine - 在 Sprites 上/在 Sprites 上绘制文本

java - Android/java 将子方法附加到父方法

java - 自定义微调适配器的 getDropDownView() 行为不一致

java - 逐字打乱字符串

java - Eclipse 无法识别代码更改