-
java 执行cmd获取执行结果_Java调用cmd命令行并返回执行结果
2021-02-12 23:34:37命令提示符是在操作系统中,提示进行命令输入的一种工作...输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd....命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车。它也可以执行BAT文件。下面讲述一下通过Java如何调用cmd命令并返回执行结果。
示例代码,具体如下:package com.yoodb.blog;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
public class CommandTest {
public static void exeCmd(String commandStr) {
BufferedReader br = null;
try {
Process p = Runtime.getRuntime().exec(commandStr);
br = new BufferedReader(new InputStreamReader(p.getInputStream(),Charset.forName("GBK")));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
System.out.println(sb.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null){
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
String commandStr = "ping blog.yoodb.com";
CommandTest.exeCmd(commandStr);
}
}
输出结果,具体如下:
正在 Ping blog.yoodb.com [123.57.47.154] 具有 32 字节的数据:
来自 123.57.47.154 的回复: 字节=32 时间=4ms TTL=52
来自 123.57.47.154 的回复: 字节=32 时间=4ms TTL=52
来自 123.57.47.154 的回复: 字节=32 时间=4ms TTL=52
来自 123.57.47.154 的回复: 字节=32 时间=4ms TTL=52
123.57.47.154 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 4ms,最长 = 4ms,平均 = 4ms
-
java 执行cmd获取执行结果_java执行系统命令, 返回执行结果
2021-02-12 23:34:39packagecom.geostar.gfstack.opinion....importjava.io.BufferedReader;importjava.io.Closeable;importjava.io.File;importjava.io.InputStreamReader;/***@author王睿 * @date 2019/5/17 9:40*/public classDocker...packagecom.geostar.gfstack.opinion.util;importjava.io.BufferedReader;importjava.io.Closeable;importjava.io.File;importjava.io.InputStreamReader;/***@author王睿
* @date 2019/5/17 9:40*/
public classDockerSockUtils {private static final String DOCKER_SOCK_CMD_PREFIX = "curl -s --unix-socket /var/run/docker.sock http://localhost/";public static voidmain(String[] args) {
System.out.println(execDockerSockCmd("containers/json"));
}/*** 通过docker套接字发送HTTP请求获取数据
*
*@paramcmd
*@return
*/
public staticString execDockerSockCmd(String cmd) {return execCmd(DOCKER_SOCK_CMD_PREFIX +cmd);
}/*** 执行系统命令, 返回执行结果
*
*@paramcmd 需要执行的命令
*@return
*/
public staticString execCmd(String cmd) {return execCmd(cmd, null);
}/*** 执行系统命令, 返回执行结果
*
*@paramcmd 需要执行的命令
*@paramdir 执行命令的子进程的工作目录, null 表示和当前主进程工作目录相同*/
public staticString execCmd(String cmd, File dir) {
StringBuilder result= newStringBuilder();
Process process= null;
BufferedReader bufrIn= null;
BufferedReader bufrError= null;try{
String[] command= {"/bin/sh", "-c", cmd};//执行命令, 返回一个子进程对象(命令在子进程中执行)
process = Runtime.getRuntime().exec(command, null, dir);//方法阻塞, 等待命令执行完成(成功会返回0)
process.waitFor();//获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入)
bufrIn = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
bufrError= new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));//读取输出
String line;while ((line = bufrIn.readLine()) != null) {
result.append(line).append('\n');
}while ((line = bufrError.readLine()) != null) {
result.append(line).append('\n');
}
}catch(Exception e) {
e.printStackTrace();
}finally{
closeStream(bufrIn);
closeStream(bufrError);//销毁子进程
if (process != null) {
process.destroy();
}//返回执行结果
returnresult.toString();
}
}/*** 关闭流
*
*@paramstream*/
private static voidcloseStream(Closeable stream) {if (stream != null) {try{
stream.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
-
java 执行cmd获取执行结果_JAVA中调用CMD命令,并输出执行结果
2021-02-12 23:34:39import java.io.BufferedReader;import java.io.InputStreamReader;public class CmdDemo {public static void main(String[] args) {BufferedReader br = null;try {Process p = Runtime.getR...package com.wzw.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class CmdDemo {
public static void main(String[] args) {
BufferedReader br = null;
try {
Process p = Runtime.getRuntime().exec("net user");
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
执行结果:
\\PC-20140327DFCW 的用户帐户
-------------------------------------------------------------------------------
Administrator Guest
命令成功完成。
-
Java执行CMD并获取执行结果
2020-06-10 10:09:23public static List<... execWithResult(String cmd){ List<String> resultList = new ArrayList<String>(); if(StringUtils.isEmpty(cmd)) { return resultList; } Process process = ...public static List<String> execWithResult(String cmd) { List<String> resultList = new ArrayList<String>(); if(StringUtils.isEmpty(cmd)) { return resultList; } Process process = null; BufferedReader bufrIn = null; try { process = Runtime.getRuntime().exec(cmd); process.waitFor(); bufrIn = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8")); String line; while ((line = bufrIn.readLine()) != null) { resultList.add(line); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if(bufrIn != null) { try { bufrIn.close(); } catch (Exception e) { e.printStackTrace(); } } } return resultList; }
-
java执行cmd命令并获取返回结果字符串
2017-10-06 18:18:16java执行cmd命令并获取返回结果字符串测试代码public static void main(String[] args) { String back=execCMD("ipconfig"); System.out.println(back); }执行cmd名称,返回响应字符串//执行cmd -
java执行cmd命令并获取输出结果
2017-09-15 17:08:001.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 ... -
java 运行cmd命令后无结果_cmd中执行java命令没有输出结果
2021-03-02 11:09:32该楼层疑似违规已被系统折叠隐藏此楼查看此楼一开始都是好好的,执行java,javac之类的命令都有正确输出结果,然后我想学习bat脚本,把系统变量JAVA_HOME删除,然后执行了以下vat脚本::@的作用是不输出echo xxx这句... -
JAVA使用CMD命令行获取执行外部程序命令得到的结果
2019-06-10 18:22:49近期接到一个需求,要求执行一个外部程序命令,用一般的命令行的方法发现没有输出。Runtime的方法似乎只适用于Windows自带的命令,并不适用于外部程序的命令。后来在stack overflow的聊天室里发问后研究出了一个结果... -
关于java调用cmd执行批处理和获取控制台输出的问题
2016-07-16 05:31:20上边的代码是为了实现动态编译和执行输入的java源码,原理是先把.java和bat文件输出到工作目录下的一个文件夹,调用cmd编译.java文件,再执行.class。现在出现一个问题,就是获取控制台输出的时候总是阻塞,google这... -
java执行cmd命令返回结果中文乱码解决方案
2019-07-01 00:59:07最近在做一个案例需要用java调用cmd执行python文件,但在获取返回结果的时候,中文出现了乱码。 代码及输出结果如下: public static String predictPython(String path, String param) throws IOException, ... -
java执行cmd命令并输出命令对应结果
2020-02-09 21:33:33java代码执行cmd命令不用多说,但是获取返回的结果过程有点坑爹,网上很多方法很多都会抛出NullPointException异常,经过几次调试修改,BUG总算解决。为避免再次采坑,纪录此次总结。 public void execCMD(String ... -
Java 执行cmd程序,并获取命令行内容
2018-02-27 15:53:23java中的RunTime类,每个java程序都有一个RunTme的运行实例,...Process 的 getInputStream() 会获取窗体命令执行的结果,可以把它转化成字符串进行输出。下面是具体的实现代码: import java.io.BufferedReader... -
Prpcess方面的问题,为什么我这个javac 和 java命令成功执行,获取终端执行结果却获取不到
2018-10-27 02:17:38Process process = runtime.exec("/bin/sh"); Thread.sleep(1000);//防止cmd.exe程序未启动,当然也可以直接使用javac命令 ...为什么我这个javac 和 java命令成功执行,获取终端执行结果却获取不到 -
java 执行命令行_Java简单实现调用命令行并获取执行结果示例
2021-02-12 10:34:14本文实例讲述了Java简单实现调用命令行并获取执行结果。分享给大家供大家参考,具体如下:import java.io.BufferedReader;import java.io.InputStreamReader;public class Command {public static void exeCmd... -
java 执行shell命令,并获取执行结果
2017-12-13 14:47:56import com.google.common.base.Strings; import org.apache.log4j.Logger; import java.io.*; import ...java.util.ArrayList;...java.util.List;...* 执行系统命令, 返回执行结果 * @param cmd -
Java调用命令行并获取执行结果
2018-06-07 10:21:49https://blog.csdn.net/prstaxy/article/details/30050175import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public static void exeCmd(String commandStr) ... -
Java 调用Linux 命令,并获取命令执行结果
2018-10-09 17:02:411.工具类 public class ExcuteLinux { ... public static String exeCmd(String commandStr) { String result = null; try { String[] cmd = new String[]{"/bin/sh", "-c",commandStr... -
Java简单实现调用命令行并获取执行结果示例
2019-11-04 22:02:37import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public static void exeCmd(String commandStr) { BufferedReader br = null; try { Process p = Runti... -
windows下java调用编译后的C语言exe文件获取cmd输出内容
2020-05-14 17:14:58// 获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入) bufrIn = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8")); bufrError =... -
java获取url视频时长
2020-05-10 20:30:06解决办法: ...1、通过java执行cmd命令ffmpeg.exe -i '视频url地址'。 2、获取结果,解析其中的Duration行,包含时长信息 代码如下: //ffmpeg命令位置 String ffmpeg_path="D:/ffmpeg-20200 -
Java 调用命令并返回命令执行的结果,并使用eclipse打包成jar工具包。
2018-05-27 20:07:41本文代码来自:枫轩缘 的博客: Java调用命令行并获取执行结果我稍微做了更改:package system.call.cmd; import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public... -
Java工具【十】Java执行服务器命令
2019-03-18 20:17:17Java执行Centos/Windows命令,异步执行,同步等待执行结果,输出命令执行日志等方法。 获取操作系统相关参数等信息 protected static final String LINUX_SHELL_PATH = "/bin/bash"; protected static final ... -
Java中Process和Runtime()使用,以及调用cmd命令阻塞解决
2020-01-13 14:52:44java调用cmd执行bat文件有时会出现卡死的现象,当时感觉很迷惑,后来查资料,本来一般都是这样来调用程序并获取进程的输出流的,但是我在windows上执行这样的调用的时候却总是在while那里被堵塞了,结果造成ffmpeg... -
Java的Process对象能不能在执行命令之后一段时间再去获取InputStream?
2011-04-19 14:17:05用Runtime.getRuntime().exec(cmd)执行命令获得了一个Process对象,但这个时候命令没有输出,要执行了其它操作之后才会有一连串的结果输出(命令就像一个服务器程序一样等待操作)。在执行了其它操作之后,再去调用... -
查看weblogic Java版本_获取WebLogic版本号有以下几种方式
2021-02-27 22:03:31获取WebLogic版本号有以下几种方式:1.通过命令方式,具体操作方式如下cd $MW_HOME\weblogicxx\server\bin$MW_HOME\weblogicxx\server\bin>...java weblogic.version执行结果输出示例如下:We... -
java oracle结果集写入txt_【JavaSE】Java开发环境搭建
2020-12-26 09:12:15一、安装...jdk安装程序双击安装即可,注意安装目录不可以出现中文安装结果二、设置环境变量安装好之后,我们并不能在cmd中直接使用Java程序,这时需要我们配置环境变量,告诉计算机当我要执行此程序时...