java调用执行cmd命令

未经允许,禁止转载!!!

package practice;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class cmdadb {

    public void executeCMDconsole(String cmd) {
        //此方法为打印日志到控制台!!!!!!!!!!!!
        //此方法跑成功!!!

        System.out.println("在cmd里面输入"+cmd);
        Process p;
        try {
            p = Runtime.getRuntime().exec(cmd);
            System.out.println(":::::::::::::::::::开始在控制台打印日志::::::::::::::::::::::>>>>>>");
            //p.waitFor();
            BufferedReader bReader=new BufferedReader(new InputStreamReader(p.getInputStream(),"gbk"));
            String line=null;
            while((line=bReader.readLine())!=null)
                System.out.println(line);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public String executeCMDfile(String[] cmmands, String logToFile, String dirTodoCMD ) throws IOException {
        //此方法为輸出日志到指定文件夹!!!!!!!!!!!!
        //此方法跑成功!!!
        //如果 String cmmand 那麼  String cmmand = "adb logcat -v time > d:/adb.log";
        //String[] cmmands 所以   String commands[] = { "adb", "logcat","-v","time"};
        //String logToFile  將日誌保存到logToFile
        //String dirTodoCMD 在dirTodoCMD執行cmd命令
        //由于將日志輸出到文件裡面了,就不能再将日誌輸出到console了

        try {
            ProcessBuilder builder = new ProcessBuilder(cmmands);
            if (dirTodoCMD != null)
                builder.directory(new File(dirTodoCMD));
            builder.redirectErrorStream(true);
            builder.redirectOutput(new File(logToFile));
            Process process = builder.start();
            process.waitFor();
            // 得到命令执行后的结果
            InputStream is = process.getInputStream();
            BufferedReader buffer = new BufferedReader(new InputStreamReader(is, "gbk"));
            String line = null;
            StringBuffer sbBuffer = new StringBuffer();
            while ((line = buffer.readLine()) != null) {
                sbBuffer.append(line);
            }

            is.close();
            return sbBuffer.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

public static void main(String[] args) throws IOException {
        //String cmd="D:/Android/android-sdk-windows/platform-tools/adb logcat -v time";
        //String cmd2="adb devices";
        //String cmd3="adb logcat -v time";
        //String cmd4="adb logcat -v time > d:/adb.log";
        cmdadb adbc = new cmdadb();
        adbc.executeCMDconsole("adb logcat -v time");
        String commands[] = { "adb", "logcat","-v","time"};
        adbc.executeCMDfile(commands, "D:/adb.logs", "C:/Users/wb-cjz286752");
        //System.out.println(result);由于將日志輸出到文件裡面了,就不能再将日志輸出到console了
    }

}
时间: 2024-12-15 20:29:34

java调用执行cmd命令的相关文章

JAVA之执行cmd命令

感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去的几个月,只能用“疲倦”两个字来形容,时间飞逝地很快,有苦也有乐,有酸也有甜. 好了,矫情的话就说到这.百忙之中,我还是记得抽些时间来更博. class ExecCmd { public static void main(String args[]) { Runtime run = Runtime.getRuntime(); Process process = null; try { process = run.exe

Java程序执行cmd命令

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public c

java执行cmd命令

从网上找的java执行cmd命令的文章,摘抄一段. java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令. cmd /c dir 是执行完dir命令后封闭命令窗口. cmd /k dir 是执行完dir命令后不封闭命令窗口. cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会封闭. cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会封闭. 可以用cmd / 查看帮助信息. ★CMD命令★1

java 执行 cmd 命令(转)

原文出处:http://blog.csdn.net/saindy5828/article/details/11975527 用JAVA代码实现执行CMD命令的方法 java的Runtime.getRuntime().exec(arstringCommand)可以调用执行cmd指令. public class Cmd{ public void execCommand(String[] arstringCommand) { for (int i = 0; i < arstringCommand.le

java执行cmd命令并获取输出结果

1.java执行cmd命令并获取输出结果 1 import java.io.BufferedReader; 2 import java.io.InputStreamReader; 3 4 import org.apache.commons.lang3.text.StrBuilder; 5 6 /** 7 * 8 * @author user1 9 */ 10 public class DeleteProgram { 11 public static void run() { 12 Runtime

Atitit.执行cmd 命令行 php

Atitit.执行cmd 命令行 php 1. 执行cmd 命令行,调用系统命令的基础 1 1.1. 实际执行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题,程序文件读取编码设置 1 1.4. 回显乱码 2 2. exec,system等函数调用系统命令 2 3. php.ini,关掉安全模式safe_mode = off 3 4. 参考 3 1. 执行cmd 命令行,调用系统命令的基础 1.1. 实际执行模式 Processmonitor 检查.得到.. PID: 115372,

Java远程执行Shell命令

1. Jar包:ganymed-ssh2-build210.jar 2. 步骤: a) 连接: Connection conn = new Connection(ipAddr); conn.connect(); b)认证: boolean authenticateVal = conn.authenticateWithPassword(userName, password); c) 打开一个Session: if(authenticateVal) Session session = conn.op

Java程序执行Linux命令(JSP运行其他程序)

java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获得相关信息.Process 类提供了执行从进程输入.执行输出到进程.等待进程完成. 检查进程的退出状态以及销毁(杀掉)进程的方法. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,M

.Net执行cmd命令

using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.W