新手区 Drozer 的使用求助

websky · 2016年07月27日 · 最后由 websky 回复于 2016年07月27日 · 1920 次阅读

我用 java 代码启动 Drozer 服务后怎样往里面输入命令得到结果

开启服务代码



public int runSH() {
        ProcessBuilder p = new ProcessBuilder("drozer.bat", "console", "connect");
        p.directory(new File("E:\\drozer"));

        int i = 0;
        try {
            Process process= p.start();

            final InputStream is1 = process.getInputStream();
            final InputStream is2 = process.getErrorStream();
            final OutputStream is3 = process.getOutputStream();
            new Thread() {
                public void run() {
                    BufferedReader br = new BufferedReader(new InputStreamReader(is1));
                    try {
                        String lineB = null;
                        while ((lineB = br.readLine()) != null) {
                            if (lineB != null)
                                System.out.println("[debug]" + lineB);
                        }

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }.start();

            new Thread() {
                public void run() {

                    BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
                    try {
                        String lineC = null;
                        while ((lineC = br2.readLine()) != null) {
                            if (lineC != null)
                                System.out.println("[debug]" + lineC);
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }.start();
            i = process.waitFor();

        } catch (Exception e) {
            System.err.println(e);
        }
        System.out.println(i);
        return i;
    }
共收到 2 条回复 时间 点赞

1:你的代码是开了 2 个线程,分别读取标准输出流和错误流,为啥要分开呢? 直接用 p.redirectErrorStream(true) 将这 2 个输出流合并一下,这样开一个线程就可以了
2:关于你的提问,可以再开一个线程啊,往里面写,BufferedWriter writer = new new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));writer.write("do something");writer.flush(); 大概就是这个样子

#1 楼 @yzx200712256 谢谢,我试了一下还是不能进行交互

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册