Runtime.getRuntime().exec参数怎么用

东九的鸟 发布于 2013/09/05 14:25
阅读 28K+
收藏 0
谁能详细解释一下Runtime.getRuntime().exec参数怎么用,是啥意思啊,菜鸟跪谢!

以下是问题补充:

@东九的鸟:急啊急啊,求指导啊 (2013/09/05 18:52)
加载中
0
loyal
loyal
Runtime.getRuntime().exec("notepad.exe c:\\a\\test.txt");

不知道你想问什么...就传一个路径+执行程序+程序参数就行了啊.


东九的鸟
东九的鸟
回复 @loyal : 有权限撒,也获取了,不知道为啥还不行,我不清粗命令的是不是这样写入android里面
loyal
loyal
回复 @东九的鸟 : 晕,你没有权限啊!你手机root了?你应用获取root权限了?android啊!晕!权限啊!
东九的鸟
东九的鸟
回复 @loyal : 有权限,这个是往android里面写入命令的,要不我把文件发给你看下,这只是个小测试=.=
loyal
loyal
回复 @东九的鸟 : 额, 你有权限么...java去执行的话就要求java有这个权限.
东九的鸟
东九的鸟
回复 @loyal : 我是这样写的诶。。不过好像不行
下一页
0
loyal
loyal
类似于这样,拿到输入和输出流就行了啊..额
import	java.io.*;

class execInput {
    public static void main(String Argv[]) {
	try {
	    String ls_str;

	    Process ls_proc = Runtime.getRuntime().exec("cmd /c dir");

	    // get its output (your input) stream

	    DataInputStream ls_in = new DataInputStream(
                                          ls_proc.getInputStream());

	    try {
		while ((ls_str = ls_in.readLine()) != null) {
		    System.out.println(ls_str);
		}
	    } catch (IOException e) {
		System.exit(0);
	    }
	} catch (IOException e1) {
	    System.err.println(e1);
	    System.exit(1);
	}

	System.exit(0);
    }
}
东九的鸟
东九的鸟
好的!跪谢!=。=
loyal
loyal
你要写入 就需要getOutputStream()了...
0
loyal
loyal
你需要这样做啊!当然是先取root权限,然后接着输入啊,要不然你下一条命令就是普通权限了啊.
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("su");
//这个proc就是具有root权限的,你可以通过以下这种方式执行一些root权限才能做得事。
PrintWriter pw = new PrintWriter(proc.getOutputStream());
pw.println("cd /system");
pw.flush();
pw.close();
0
东九的鸟
东九的鸟

引用来自“loyal”的答案

你需要这样做啊!当然是先取root权限,然后接着输入啊,要不然你下一条命令就是普通权限了啊.
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("su");
//这个proc就是具有root权限的,你可以通过以下这种方式执行一些root权限才能做得事。
PrintWriter pw = new PrintWriter(proc.getOutputStream());
pw.println("cd /system");
pw.flush();
pw.close();
你看看这样行不行诶
String cmd = "chmod 777 /system/bin/input ";
String[] command = new String[]{"su","input tap 200 200"};
process1 = Runtime.getRuntime().exec(command);

os = new DataOutputStream(process1.getOutputStream());

//byte[] by = new byte[1024];

//os.write(by);
os.writeBytes(cmd+"\n");
//Log.d("打印流",String.valueOf(by));
Log.d("进入了命令command", "进入");
os.writeBytes("exit\n");
os.flush();
process1.waitFor();
返回顶部
顶部