[英]java Runtime exec process do not work properly
当我执行下面从Terminal(使用Ubuntu Linux)添加的命令时,命令将正确执行。 但是,即使没有错误或异常,当我尝试通过Java应用程序执行完全相同的命令时 ,它也会失败。
失败表示此命令将创建一个新文件夹并提取其中的apk文件内容。
要执行的命令 :
java -jar ~/apktool1.5.2/apktool.jar d /home/talha/Desktop/myapk.apk /home/talha/Desktop/myapk
源代码:
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
试试这个代码:
public static void main(String[] args) {
String[] cmd = { "/bin/sh", "-c", "java -jar ~/apktool1.5.2/apktool.jar d /home/talha/Desktop/myapk.apk /home/talha/Desktop/myapk" };
BufferedReader bri = null, bre = null;
int exitC = 0;
try {
Process p = Runtime.getRuntime().exec(cmd);
exitC = p.waitFor();
bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line = "";
while ((line = bri.readLine()) != null) {
System.out.println(line);
}
while ((line = bre.readLine()) != null) {
System.out.println(line);
}
bri.close();
bre.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Exit Code: "+ exitC);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.