怎样使用getruntime.exec 权限的exec函数来打jar包

14:41 提问
android Runtime.getRuntime.exec()方法调用tcpdump抓包但文件无法保存
android内置程序调用tcpdump:
Runtime.getRuntime().exec("/data/local/tcpdump -XvvennSs 0 -w /mnt/sdcard/cap.pcap
-i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 or tcp[20:2]=0x504f");
该命令在cmd上可行,但让程序在模拟器上运行Runtime.getRuntime().exec()没有执行保存到sd卡命令,怎么破?
该处命令改成 “mkdir mnt/sdcard/mydir”是有效果的。
按赞数排序
遇到了同样的问题,求破
其他相似问题本帖子已过去太久远了,不再提供回复功能。使用Java中的Runtime.exec()执行Windows命令
- ITeye技术网站
博客分类:
转载地址:
写这篇博客的出发点是为了回答JavaEye问答频道上面的一个问题,是问如何用Java来调用Windows上的wmic命令来获取系统中当前的进程信息。我的第一印象是用Runtime.exec()肯定是可以的,但一写就发现,事情并没有那么的简单。我又找到了一篇比较老的文章,仔细阅读,才明白了其中的细节。下面是一些要点:
等待命令执行结束用waitFor(),其返回值就是命令的返回值。
如果出现程序执行被挂起,没有任何反应的情况,是由于没有读取命令子进程的正常输出流或错误输出流导致缓冲区被占满,进程被锁住。这个时候需要把输出流中的内容给读出来。最好的做法是使用两个线程,分别同时读取正常输出流和错误输出流。
执行Windows平台上的命令时使用cmd.exe /C,如cmd.exe /C dir。
记得关闭命令子进程的输出流,通过Process.getOutputStream().close(),这样不会导致命令子进程被锁住。
仿照上面文章中,写了一个简单的例子。
import java.io.BufferedR
import java.io.InputS
import java.io.InputStreamR
class StreamDrainer implements Runnable {
private InputS
public StreamDrainer(InputStream ins) {
this.ins =
public void run() {
BufferedReader reader = new BufferedReader(
new InputStreamReader(ins));
String line =
while ((line = reader.readLine()) != null) {
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
public class TestRunCmd {
public static void main(String[] args) {
String[] cmd = new String[] { "cmd.exe", "/C", "wmic process get name" };
Process process = Runtime.getRuntime().exec(cmd);
new Thread(new StreamDrainer(process.getInputStream())).start();
new Thread(new StreamDrainer(process.getErrorStream())).start();
process.getOutputStream().close();
int exitValue = process.waitFor();
System.out.println("返回值:" + exitValue);
} catch (Exception e) {
e.printStackTrace();
浏览 10188
非常感谢,你的方法很好用。不知道返回的流中有乱码的问题怎样解决?lyb520320 写道非常感谢,你的方法很好用。不知道返回的流中有乱码的问题怎样解决?将输入的流转码即可: BufferedReader reader = new BufferedReader(& &&&&&&&&&&&&&&&&&&& new InputStreamReader(ins),"GBK");&
浏览: 308582 次
来自: 郑州
* Flips this buff ...
感谢,清晰了很多。
jdluojing 写道你的说法也不完整,buffer中的f ...
关于这段话,我有不同看法:2)如果instance变量是一个对 ...
如果没有前台页面 只是作为服务端提供HTTP接口的话 可不可以 ...}

我要回帖

更多关于 runtime.exec 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信