参见:https://blog.csdn.net/lixingshi/article/details/50467840

 public static void runtimeCommand() throws Exception {

    	Process process = Runtime.getRuntime().exec("cmd.exe /c dir");
int status = process.waitFor(); System.out.println(status);
InputStream in = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = br.readLine();
while(line!=null) {
System.out.println(line);
line = br.readLine();
} }  

命令行中使用/c关闭执行完毕的窗口,否则无法获取输入流。但是在Linux下面就可以直接使用如下代码获取输入流:

Process process = Runtime.getRuntime().exec("ls");
int status = process.waitFor(); System.out.println(status);
InputStream in = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = br.readLine();
while(line!=null) {
System.out.println(line);
line = br.readLine();
}

  还可以使用ProcessBuilder进行创建进程,这种方更灵活。代码如下:

public static void processBuilderCommand() throws Exception {

    	List<String> commands = new ArrayList<>();
commands.add("cmd.exe");
commands.add("/c");
commands.add("dir");
commands.add("E:\\flink");
ProcessBuilder pb =new ProcessBuilder(commands);
//可以修改进程环境变量
pb.environment().put("DAXIN_HOME", "/home/daxin");
System.out.println(pb.directory()); Process process = pb.start();
int status = process.waitFor();
System.out.println(pb.environment()); System.out.println(status);
InputStream in = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = br.readLine();
while(line!=null) {
System.out.println(line);
line = br.readLine();
} }

  

调用java命令执行class文件并获取输出:

 public static void processBuilderCommand() throws Exception {

    	List<String> commands = new ArrayList<>();
commands.add("cmd.exe");
commands.add("/c");
commands.add("java HelloWorld");
ProcessBuilder pb =new ProcessBuilder(commands);
pb.directory(new File("C:\\Users\\liuguangxin\\oxygen--workspace\\java8\\bin\\"));//设置工作目录
Process process = pb.start();
int status = process.waitFor(); InputStream in = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = br.readLine();
while(line!=null) {
System.out.println(line);
line = br.readLine();
} }

  

java   C:\\Users\\liuguangxin\\oxygen--workspace\\java8\\bin\\HelloWorld会将目录作为类名一起解析故无法执行。

Java执行CMD命令的更多相关文章

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

    1.java执行cmd命令并获取输出结果 import java.io.BufferedReader; import java.io.InputStreamReader; import org.apa ...

  2. 如何使用Java执行cmd命令

    用JAVA代码实现执行CMD命令的方法! Runtime rt = Runtime.getRuntime(); Process p = rt.exec(String[] cmdarray);     ...

  3. Java执行cmd命令、bat脚本、linux命令,shell脚本等

    1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...

  4. 解决方案--java执行cmd命令ProcessBuilder--出错Exception in thread "main" java.io.IOException: Cannot run program "dir d:\": CreateProcess error=2(xjl456852原创)

    当我尝试在java中通过ProcessBuilder运行window的cmd命令时出现错误: public static void main(String [] args) throws IOExce ...

  5. java执行cmd命令和linux命令

    文章出处http://blog.csdn.net/xh16319/article/details/17302947 一:window下执行cmd指定 一:window下执行cmd指定 程序例子: [j ...

  6. JAVA执行cmd命令方法

    package com.cmd; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStre ...

  7. java中执行cmd命令

    一.java执行cmd命令的三种方式:http://www.jb51.net/article/80829.htm 参考:https://www.cnblogs.com/zhufu9426/p/7928 ...

  8. 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 ...

  9. JAVA之执行cmd命令

    感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去一两个月,只能用“疲倦”两个字来形容,而且是身心疲惫.每天11.12个小时的工作我都没觉得烦,但是总是想克服却又很难克服的 ...

随机推荐

  1. LOJ#6035. 「雅礼集训 2017 Day4」洗衣服

    传送门 先处理出每一件衣服最早什么时候洗完,堆+贪心即可 然后同样处理出每件衣服最早什么时候烘干 然后倒序相加取最大值 # include <bits/stdc++.h> using na ...

  2. 浏览器根对象navigator之对象属性概览

    第1章 connection[试验] navigator.connection 是只读的,提供一个NetworkInformation 对象来获取设备的网络连接信息.例如用户设备的当前带宽或连接是否被 ...

  3. Django 配置mysql

    1.创建数据库 create database django_lianxi charset=utf8; 2.django项目文件夹的setting.py设置 Django项目默认 sqlite3 数据 ...

  4. iPhone 应用开发的5个贴士

    [编者按]本文作者为来自 Redbytes Software 的开发者 James Richard,主要介绍开发 iPhone 应用过程中大有益处的五个贴士.文章系国内 ITOM 管理平台 OneAP ...

  5. ThinkPHP执行调用存储过程添加日志

    本文出至:新太潮流网络博客 //PHP代码部分 /** * [LogAdd 操作日志] * @param [string] $userid [用户的ID] * @param [string] $typ ...

  6. C++ 入门随手笔记及联系

    一.第一个C++程序 1.文件扩展名  C++源代码的文件扩展名.cpp.C.cxx.c(需要指定编译语言)  自定义的头文件依然保留.h 2.头文件  C++标准库的头文件不带.h,最常用的是ios ...

  7. django 实用工具dj-database-url 快速配置数据库

    dj-database-url Github>>> django快速配置多种数据库 $ pip install dj-database-url Configure your data ...

  8. Oracle数据库运维:要对监听日志文件(listener.log)进行定期清理,如果不定期清理,会遇到下面一些麻烦

    原文链接: http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?EmPreviewTypeV=2& ...

  9. 关于Tomcat端口出现的问题

    =Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. Th ...

  10. September 04th 2017 Week 36th Monday

    Try not to become a man of success but rather try to become a man of value. 不要努力去做一个成功的人,而要努力去做一个有价值 ...