从java运行猴子

时间:2011-12-29 15:21:19

标签: java android bash shell

我在script.txt文件中有这个脚本

我像这样运行

monkeyrunner /home/user/script.txt

这是我的script.txt

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import time

device = MonkeyRunner.waitForConnection("wait forever","emulator-5554")

package = 'com.pak.pak1'

activity = 'com.pak.pak1.MyActivity'

runComponent = package + '/' + activity

#     Runs the component
device.startActivity(component=runComponent)

time.sleep(1)

我想要做的是从java

运行脚本

此代码运行shell命令,例如srart脚本

 try {
        new Thread() {
            public void run() {
                Process p;
                try {
                    p = Runtime.getRuntime().exec("monkeyrunner /home/user/script.txt");

                    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line;
                    while ((line = br.readLine()) != null) {

                        System.out.println(line);

                    }
                    br.close();

                    p.waitFor();
                } catch (Exception e) {
                    //e.printStackTrace();
                }
            }
        }.start();
    } catch (Exception ie) {

    }

最后mu问题是我如何直接从java运行monkey runner命令,我不想拥有script.txt文件。这可能吗 ?我的目标是运行Monkey runner但我不想拥有script.txt文件

2 个答案:

答案 0 :(得分:1)

显然,如果在类路径中包含MonkeyRunner chimpchat.jar(以及它的jar依赖项),那么您可以直接在Java应用程序中调用monkey runner Java类。查看构成示例的this classthis class

关于此主题的

Another thread

答案 1 :(得分:0)

这看起来非常复杂,但仍然...... monkeyrunner可以交互式运行,因此直接写入stdin(从p.getOutputStream()获取)你希望它运行的所有字符串。

你可能需要在发出任何命令之前耗尽stdout,但我不认为会是这种情况。