:java 怎么执行 shell 命令呢?希望下面的文章对大家有所帮助。
- public boolean runCommand(String[] command, String workdirectory) {
- String result = "";
- try ProcessBuilder builder = new ProcessBuilder(command);
- if (workdirectory != null) {
- builder.directory(new File(workdirectory));
- }
- builder.redirectErrorStream(true);
- Process process = builder.start();
- InputStream in =process.getInputStream();
- byte[] buffer = new byte[1024];
- while ( in .read(buffer) != -1) {
- String str = new String(buffer);
- result = result + str;
- } in .close();
- return true;
- } catch(Exception e) {
- e.printStackTrace();
- }
- return false;
- }
for example
- public void deleteDirectory(File dir) {
- String[] args = {
- "/system/bin/rm",
- "-rf",
- dir.getPath()
- };
- runCommand(args, "/system/bin/");
- }
2
- private List getAllPID(String packageName) {
- Runtime mRuntime = Runtime.getRuntime();
- List list = new ArrayList < >();
- try {
- java.lang.Process mProcess = mRuntime.exec("ps | grep " + packageName);
- BufferedReader mReader = new BufferedReader(new InputStreamReader(mProcess.getInputStream()));
- StringBuffer mRespBuff = new StringBuffer();
- char[] buff = new char[1024];
- int ch = 0;
- while ((ch = mReader.read(buff)) != -1) {
- mRespBuff.append(buff, 0, ch);
- }
- mReader.close();
- String[] all = mRespBuff.toString().split("\n");
- for (String line: all) {
- if (line.contains(packageName)) {
- String[] datas = line.split(" ");
- int index = 0;
- for (int i = 1; i < datas.length; i++) {
- if (!datas[i].trim().equals("")) {
- index = i;
- break;
- }
- }
- list.add(datas[index]);
- }
- }
- } catch(IOException e) {
- e.printStackTrace();
- }
- return list;
- }
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-30/19697996.html