<context-param>
<param-name>shell</param-name>
<param-value>/home/b916/tomcat7.0.67/apkpatch/apkpatch.sh -f /home/b916/tomcat7.0.67/apkpatch/new.apk -t /home/b916/tomcat7.0.67/apkpatch/old.apk -o /home/b916/tomcat7.0.67/apkpatch/output -k /home/b916/tomcat7.0.67/apkpatch/debug.keystore -p android -a androiddebugkey -e android</param-value>
</context-param>
try {
String command = getServletContext().getInitParameter("shell");
String[] cmds = new String[]{"/bin/sh","-c", command};
process = Runtime.getRuntime().exec(cmds);
final InputStream is1 = process.getInputStream();
final InputStream is2 = process.getErrorStream();
new Thread() {
public void run() {
BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));
try {
String line1 = null;
while ((line1 = br1.readLine() )!= null) {
if (line1 != null) {
System.out.println("line1=="+line1);
}
}
} catch (IOException e) {
} finally {
try {
is1.close();
}catch (IOException e) {
e.printStackTrace();
}
}
};
}.start();
new Thread() {
public void run() {
BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
try {
String line2 = null;
while ((line2 = br2.readLine() ) != null) {
if (line2 != null) {
System.out.println("line2=="+line2);
}
}
} catch (IOException e) {
} finally {
try {
is2.close();
} catch (IOException e ) {
}
}
};
}.start();
process.waitFor();
process.destroy();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
} catch (Exception e) {
}
}
}
}