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");       

Java调用Windows内cmd命令

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

java执行windows下cmd命令的方法

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

Java 执行Windows 命令行

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

java调用shell脚本、windows命令

package com.autotest.util; import java.io.BufferedReader; import java.io.InputStreamReader; impor...
  • chbddh
  • chbddh
  • 2017年05月12日 20:47
  • 903

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

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

在java中调用windows命令

import java.io.*; /** * 在java中调用windows命令 *  * @author Norez *  */public class RuntimeExec {        ...
  • zery
  • zery
  • 2006年06月08日 17:37
  • 1450

java socket远程控制主机,执行命令

socket server服务端代码 package com.core.servers; import java.io.BufferedReader; import java.io.DataInpu...
  • baidu_19473529
  • baidu_19473529
  • 2017年01月22日 13:57
  • 433

jenkins搭建以及简单使用

1.下载地址:http://mirrors.jenkins.io/war-stable/ 根据不同jdk下载相应版本的jenkins,war包2.部署Jenkins 直接执行命令 Jav...
  • zhouwtao
  • zhouwtao
  • 2017年09月25日 14:59
  • 100

java实现liunx,windows命令的调用

java实现liunx,windows命令的调用
  • rainjm
  • rainjm
  • 2017年10月30日 15:59
  • 63

Python Windows 执行cmd命令(popen)

import os mystr=os.popen("tasklist") #popen与system可以执行指令,popen可以接受返回对象 mystr=mystr.read() #读取输出 pr...
  • houyanhua1
  • houyanhua1
  • 2017年09月30日 10:55
  • 3016
收藏助手
不良信息举报
您举报文章:Java调用Windows命令
举报原因:
原因补充:

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