Java调用Windows命令

原创 2008年08月26日 20:46:00
Java调用Windows命令主要用到两个类:
 
java.lang.Runtime
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。
 
java.lang.Process
ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。 对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。
 
下面是个简单例子:
  1. package com.lavasoft;
  2. import java.io.IOException;
  3. import java.io.BufferedReader;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. public class TestCmd {
  7.     public static void main(String args[]) {
  8.         testWinCmd();
  9.         dirOpt();
  10.     }
  11.     public static void testWinCmd() {
  12.         System.out.println("------------------testWinCmd()--------------------");
  13.         Runtime runtime = Runtime.getRuntime();
  14.         System.out.println(runtime.totalMemory());
  15.         System.out.println(runtime.freeMemory());
  16.         System.out.println(runtime.maxMemory());
  17.         System.out.println(runtime.availableProcessors());   //处理器数
  18.         try {
  19.             //执行一个exe文件
  20.             runtime.exec("notepad");
  21.             runtime.exec("C://Program Files//Microsoft Office//OFFICE11//winword.exe c://test.doc");
  22.             //执行批处理
  23.             runtime.exec("c://x.bat");
  24.             //执行系统命令
  25.             runtime.exec("cmd /c dir ");
  26.             runtime.exec("cmd /c dir c://");
  27. //            //-------------- 文件操作 --------------
  28.             runtime.exec("cmd /c copy c://x.bat d://x.txt");   //copy并改名
  29.             runtime.exec("cmd /c rename d://x.txt x.txt.bak"); //重命名
  30.             runtime.exec("cmd /c move d://x.txt.bak c://");    //移动
  31.             runtime.exec("cmd /c del c://x.txt.bak");          //删除
  32.             //-------------- 目录操作 --------------
  33.             runtime.exec("cmd /c md c://_test");          //删除
  34.         } catch (IOException e) {
  35.             e.printStackTrace();
  36.         }
  37.     }
  38.     
  39.     public static void dirOpt() {
  40.         System.out.println("------------------dirOpt()--------------------");
  41.         Process process;
  42.         try {
  43.             //执行命令
  44.             process = Runtime.getRuntime().exec("c://x.bat");
  45.             //取得命令结果的输出流
  46.             InputStream fis = process.getInputStream();
  47.             //用一个读输出流类去读
  48.             BufferedReader br = new BufferedReader(new InputStreamReader(fis));
  49.             String line = null;
  50.             //逐行读取输出到控制台
  51.             while ((line = br.readLine()) != null) {
  52.                 System.out.println(line);
  53.             }
  54.         } catch (IOException e) {
  55.             e.printStackTrace();
  56.         }
  57.     }
  58. }
  59. Java调用Windows命令主要用到两个类:
     
    java.lang.Runtime
    每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。
     
    java.lang.Process
    ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。 对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。
     
    下面是个简单例子:
    package com.lavasoft;

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


    public class TestCmd {

        public static void main(String args[]) {
            testWinCmd();
            dirOpt();
        }

        public static void testWinCmd() {
            System.out.println("------------------testWinCmd()--------------------");
            Runtime runtime = Runtime.getRuntime();
            System.out.println(runtime.totalMemory());
            System.out.println(runtime.freeMemory());
            System.out.println(runtime.maxMemory());
            System.out.println(runtime.availableProcessors());   //处理器数
            try {
                //执行一个exe文件
                runtime.exec("notepad");
                runtime.exec("C://Program Files//Microsoft Office//OFFICE11//winword.exe c://test.doc");
                //执行批处理
                runtime.exec("c://x.bat");
                //执行系统命令
                runtime.exec("cmd /c dir ");
                runtime.exec("cmd /c dir c://");

    //            //-------------- 文件操作 --------------

                runtime.exec("cmd /c copy c://x.bat d://x.txt");   //copy并改名
                runtime.exec("cmd /c rename d://x.txt x.txt.bak"); //重命名
                runtime.exec("cmd /c move d://x.txt.bak c://");    //移动
                runtime.exec("cmd /c del c://x.txt.bak");          //删除

                //-------------- 目录操作 --------------
                runtime.exec("cmd /c md c://_test");          //删除
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        
        public static void dirOpt() {
            System.out.println("------------------dirOpt()--------------------");
            Process process;
            try {
                //执行命令
                process = Runtime.getRuntime().exec("c://x.bat");
                //取得命令结果的输出流
                InputStream fis = process.getInputStream();
                //用一个读输出流类去读
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                String line = null;
                //逐行读取输出到控制台
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
     
    x.bat
    del c:/del.txt
    cd D:
    dir
    运行结果:
    ------------------testWinCmd()--------------------
    2031616
    1652120
    66650112
    2
    ------------------dirOpt()--------------------

    D:/_dev_stu/fileopt>del c:/del.txt  

    D:/_dev_stu/fileopt>cd D:  
    D:/_dev_stu/fileopt

    D:/_dev_stu/fileopt>dir
    驱动器 D 中的卷是 DISK1_VOL2
    卷的序列号是 70FB-DFAF

    D:/_dev_stu/fileopt 的目录

    2008-07-18  09:30    <DIR>          .
    2008-07-18  09:30    <DIR>          ..
    2008-07-18  09:30    <DIR>          src
    2008-07-18  09:31               549 fileopt.iml
    2008-07-18  09:31            10,292 fileopt.ipr
    2008-07-18  14:27    <DIR>          classes
    2008-07-18  16:42            26,265 fileopt.iws
                   3 个文件         37,106 字节
                   4 个目录  8,095,498,240 可用字节

    Process finished with exit code 0

Java调用Windows内cmd命令

很多情况下,在Windows进行操作时,直接使用cmd命令提示符会远比通过Java实现简便的多,所以我们可以通过使用Java调用cmd命令的方式来完成这一操作。可以使用Java调用cmd命令删除目录下...
  • Roy_70
  • Roy_70
  • 2016年05月26日 10:57
  • 6729

Java 执行Windows 命令行

有时候,项目需要用Java 语言执行系统命令,Javva  执行命令的方式也非常简单。 【1. 工具类】 package org.zgf.robot.util; /** * @ClassName...
  • zgf19930504
  • zgf19930504
  • 2015年12月01日 16:02
  • 713

java执行windows下cmd命令的方法

本文实例讲述了java执行windows下cmd命令的方法。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下: //获取运行时 Runtime rt = Runtime.ge...
  • lixingshi
  • lixingshi
  • 2016年01月06日 11:41
  • 2336

Java调用Windows命令

Java调用Windows命令   Java调用Windows命令主要用到两个类:   java.lang.Runtime 每个 Java 应用程序都有一个 Runtime 类实例,使应用程...
  • l1028386804
  • l1028386804
  • 2015年03月10日 20:56
  • 1856

java程序执行外部命令

java程序执行外部命令 先来看一下java中运行外部命令(比如windows下的dos命令、linux下的shell命令)的方法: Process proc = Runtime.ge...
  • BENKG
  • BENKG
  • 2015年07月14日 19:03
  • 893

Java调用Windows命令

Java调用Windows命令主要用到两个类: java.lang.Runtime 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getR...
  • waitingbb123
  • waitingbb123
  • 2016年09月07日 22:39
  • 149

Java使用SSH远程访问Windows并执行命令

转载至:http://blog.csdn.net/carolzhang8406/article/details/6760430 windows由于没有默认的ssh server,因此在允许ssh之前...
  • angel_xiaa
  • angel_xiaa
  • 2016年08月29日 18:32
  • 4551

Learning Python 022 调用DOS命令 --- 实例:调用Windows里面的copy命令

使用的电脑系统:Windows 10 64位 使用的开发集成环境:PyCharm 2016.1.4 使用的Python的版本:python 2.7.10 和 python 3.5.0 本篇博客对 P...
  • github_35160620
  • github_35160620
  • 2016年12月01日 06:04
  • 9726

菜鸟笔记--Java通过Rserve调用R语言

1、Rserve安装和启动(windows环境) 前提:安装并配置了R语言。 步骤:a.打开R工具,在命令中执行install.packages("Rserve"),下载Rserve;     ...
  • pazezhe
  • pazezhe
  • 2016年09月04日 15:11
  • 821

Windows批处理(cmd/bat)常用命令

前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺...
  • hanzheng260561728
  • hanzheng260561728
  • 2016年06月01日 20:59
  • 27281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java调用Windows命令
举报原因:
原因补充:

(最多只允许输入30个字)