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了
} }
java调用执行cmd命令的更多相关文章
- java中执行cmd命令
一.java执行cmd命令的三种方式:http://www.jb51.net/article/80829.htm 参考:https://www.cnblogs.com/zhufu9426/p/7928 ...
- JAVA之执行cmd命令
感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去一两个月,只能用“疲倦”两个字来形容,而且是身心疲惫.每天11.12个小时的工作我都没觉得烦,但是总是想克服却又很难克服的 ...
- Java程序执行cmd命令
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...
- java调用执行cmd指令启动weblogic
这里的例子是启动weblogic import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...
- Java 调用并执行cmd命令
cmd java 调用 执行 概要: Java 调用并执行cmd命令 Java | 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 ...
- 如何使用Java执行cmd命令
用JAVA代码实现执行CMD命令的方法! Runtime rt = Runtime.getRuntime(); Process p = rt.exec(String[] cmdarray); ...
- java执行cmd命令并获取输出结果
1.java执行cmd命令并获取输出结果 import java.io.BufferedReader; import java.io.InputStreamReader; import org.apa ...
- Java执行cmd命令、bat脚本、linux命令,shell脚本等
1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...
- Atitit.执行cmd 命令行 php
Atitit.执行cmd 命令行 php 1. 执行cmd 命令行,调用系统命令的基础 1 1.1. 实际执行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题,程序文件读取编码设置 1 1 ...
随机推荐
- Unix系统编程(三)通用的I/O
UNIX IO模型的显著特点之一是输出输出概念的通用性,这意味着,4个同样的系统调用open,read,write和close可以对所有类型的文件执行IO操作,包括终端之类的设备.因此仅用这些系统调 ...
- 使用心跳机制实现CS架构下多客户端的在线状态实时更新以及掉线自动重连
此文讲述的内容是一个实际项目开发中的一部分内容,笔者将亲身经历写成文章. [背景] 现需要实现这样的功能:有多个客户端连着同一个服务器.服务器和客户端之间需要“互相”知道彼此的连接状态.比如在某一时刻 ...
- Web监听器导图详解
监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...
- 【BZOJ】2018: [Usaco2009 Nov]农场技艺大赛(暴力)
http://www.lydsy.com/JudgeOnline/problem.php?id=2018 精度问题我也是醉了.. #include <cstdio> #include &l ...
- sublime 空格 tab
sublime强大的编辑能力非常值得推荐.在编辑python语言时,因为python用段落格式取代了常见语言中的括号,所以在写python时.会将空格和tab混淆,如此产生的错误非常是恼人. 如17, ...
- 【机器学习】WIFI室内定位
WIFI室内定位-指纹法 在A1区域内每个点上采集四个WiFi的信号数据(信号强度),五点.九点.十六点采样. 5*5=25区域*16数据=400样本,用来训练 样本数 R B G1 G2 1 2 ...
- 【转】VC++计算当前时间点间隔N天的时间(不使用CTimeSpan类)
转自:http://blog.csdn.net/fzuim/article/details/61199351 涉及到有效期的设置,需要计算N天时间间隔的时间. C++ Code 123456789 ...
- Eclipse下导入外部jar包的3种方式
http://blog.csdn.net/mazhaojuan/article/details/21403717
- InetAddress类和InetSocketAddress的使用
一简介 InetAddress是Java对IP地址的封装,代表互联网协议(IP)地址:InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的ip地址封装对象: ? 1 InetAd ...
- Spring Cloud Zuul实现IP访问控制
接着上篇文章 https://www.cnblogs.com/mxmbk/p/9569438.html IP访问限制和黑白名单如何做,需要解决以下几个问题: 1.如何识别正常访问和异常访问?(一段时间 ...