有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java命令在终端中工作,但在使用过程中出现“无结束引号”错误。执行官

我在Java程序中有以下方法

public static void enableAirplaneMode() {
    String s = null;
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = null;
        String command = "adb shell \"su -c 'settings put global airplane_mode_on 1'\"";
        System.out.println(command);
        pr = rt.exec(command);

        BufferedReader stdInput = new BufferedReader(new InputStreamReader(pr.getInputStream()));

        while ((s = stdInput.readLine()) != null) {
            System.out.println(s);
        }

        pr.destroy();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

上述方法的输出为

adb shell "su -c 'settings put global airplane_mode_on 1'"
/system/bin/sh: no closing quote

但是,如果我直接在终端中复制/粘贴命令,一切都会按预期工作。为什么在这里出现“无结束报价”错误


共 (1) 个答案

  1. # 1 楼答案

    按照javadocs上的建议尝试passing an array

    String[] command = {"adb", "shell", "su -c 'settings put global airplane_mode_on 1'"};