`
chemingliang
  • 浏览: 134709 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA调用系统命令或可执行程序【转】

    博客分类:
  • Java
 
阅读更多

通过 java.lang.Runtime 类可以方便的调用操作系统命令,或者一个可执行程序,下面的小例子我在windows和linux分别测试过,都通过。基本原理是,首先通过 Runtime.getRuntime() 返回与当前 Java 应用程序相关的运行时对象,然后调用run.exec(cmd)  另启一个进程来执行命令(cmd为要执行的命令)。

 

一、运行一个可执行程序

    执行一个.exe的文件,或通过已安装的软件打开一个特定格式的文件,如word、chm或mp3等等。

1. 在window下可以直接执行一个.exe文件,如执行我在F盘下的tomcat安装文件,将命令写为:

    String cmd = "F:\\apache-tomcat-6.0.20.exe";

2. 打开一个word文档。如果系统已经安装了office应用程序,就可以通过调用word的可执行程序来打开一个word文档:

    String cmd = "D:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE F:\\test.doc";

    当然这样写有点麻烦,我们想打开一个word文档时只要双击就可以了,用不着去找WINWORD.EXE。要是打开每一种格式的文件都得去找它的可执行程序,那可累死了,我们可以通过下面的代码,打开任意一个已知格式的文件(只要安装的打开这种文件格式的软件),相当于用鼠标双击一个文件的图标:

    String cmd = "cmd.exe /c start F:\\test.doc";

 

    我用C写了一个进程操作的小例子,放在 linux 下编译出的可执行文件叫“fork_wait”,然后把我的java文件编译成TestRunTime.class后扔到 linux 上,在控制台执行 java TestRunTime 命令,TestRunTime 和 fork_wait 程序均运行成功。

    String cmd = "./fork_wait";

 

二、执行一个有标准输出的系统命令

    通过调用进程的 getInputStream() 方法,可以获得执行命令的标准输出。在 windows 的cmd控制台窗口和 linux 控制台执行系统名利的格式是一样的,只是输入的命令不同而已。

如要执行windows控制台中ping命令,可写为:String cmd = "ping www.baidu.com";

执行linux的ls命令,可写为:String cmd = "ls -l";

 

    如果要执行一个带参数的命令,可使用 String 数组形式,如:

    String[] cmd=new String[3];
    cmd[0]="/bin/sh";
    cmd[1]="-c";
    cmd[2]="ls -l ./";

 

JAVA 测试代码

  1. import java.io.BufferedInputStream;  
  2. import java.io.BufferedReader;  
  3. import java.io.InputStreamReader;  
  4.   
  5. public class TestRunTime {  
  6.     public static void main(String[] args) {  
  7.         //windows  
  8. //      String cmd = "F:\\apache-tomcat-6.0.20.exe";  
  9. //      String cmd = "D:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE F:\\test.doc";  
  10. //      String cmd = "cmd.exe /c start F:\\test.doc";  
  11.         String cmd = "ping www.baidu.com";  
  12.           
  13.         //linux  
  14. //      String cmd = "./fork_wait";  
  15. //      String cmd = "ls -l";  
  16. //      String[] cmd=new String[3];  
  17. //      cmd[0]="/bin/sh";  
  18. //      cmd[1]="-c";  
  19. //      cmd[2]="ls -l ./";  
  20.         Runtime run = Runtime.getRuntime();//返回与当前 Java 应用程序相关的运行时对象  
  21.         try {  
  22.             Process p = run.exec(cmd);// 启动另一个进程来执行命令  
  23.             BufferedInputStream in = new BufferedInputStream(p.getInputStream());  
  24.             BufferedReader inBr = new BufferedReader(new InputStreamReader(in));  
  25.             String lineStr;  
  26.             while ((lineStr = inBr.readLine()) != null)  
  27.                 //获得命令执行后在控制台的输出信息  
  28.                 System.out.println(lineStr);// 打印输出信息  
  29.             //检查命令是否执行失败。  
  30.             if (p.waitFor() != 0) {  
  31.                 if (p.exitValue() == 1)//p.exitValue()==0表示正常结束,1:非正常结束  
  32.                     System.err.println("命令执行失败!");  
  33.             }  
  34.             inBr.close();  
  35.             in.close();  
  36.         } catch (Exception e) {  
  37.             e.printStackTrace();  
  38.         }  
  39.     }  
  40. }  

 

转自:http://wuhongyu.iteye.com/blog/461477/

分享到:
评论

相关推荐

    java中两种方式调用其他.exe可执行程序

    使用 Java 调用其他.exe 可执行程序时,需要注意以下几点: * 需要确保调用其他.exe 可执行程序的权限,避免出现权限不足的错误。 * 需要确保调用其他.exe 可执行程序的路径正确,避免出现文件不存在的错误。 * ...

    java调用windows命令

    - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行程序。例如: ```java Process process = Runtime.getRuntime().exec(".\\p.exe"); ``` - `exec()`方法返回一个Process对象,可以...

    Linux下Java中调用可执行程序

    在Linux环境下,Java程序可以通过Runtime类或者ProcessBuilder类来调用外部的可执行程序。这个过程通常涉及以下几个关键步骤: 1. **获取运行时环境**: 首先,你需要通过`Runtime.getRuntime()`方法创建一个...

    Java调用应用程序和Dos中的命令

    ### Java调用应用程序和Dos中的命令 在Java编程中,有时候我们需要执行一些操作系统级别的任务,例如启动一个外部程序、执行一些系统命令等。这通常可以通过Java的`Runtime`类实现,尤其是通过`Runtime.exec()`方法...

    用java程序调用ffmpeg执行视频文件格式转换flv

    总结来说,通过Java调用FFmpeg和Mencoder进行视频格式转换,需要理解这两个工具的命令行语法,以及如何在Java中执行外部进程。此过程涉及到文件类型的检查、预处理转换(如果必要)、最终的格式转换以及错误处理,...

    Java调用Linux命令

    ### Java调用Linux命令 Java提供了一种强大的机制来执行操作系统级别的任务,其中包括调用Linux命令。实现这一功能的核心是`Runtime`类中的`exec()`方法。这个方法允许Java应用程序创建一个新的进程来执行指定的...

    java工程 实现调用系统命令ping

    总结,Java调用系统命令“ping”涉及到对操作系统接口的使用,以及对输入/输出流的处理。在Spring框架下,我们可以通过依赖注入简化代码并提高可维护性。实践过程中需要注意处理可能的异常,并确保正确关闭所有打开...

    java 调用windows的一些可执行文件

    在Java编程环境中,有时我们需要与操作系统进行交互,例如调用Windows系统的可执行文件或批处理文件来执行特定任务。这通常通过Java的Runtime类或ProcessBuilder类实现。这两个类允许我们构建命令行指令并执行它们,...

    JAVA执行DOS命令分析

    `Runtime.getRuntime().exec()`允许我们创建一个子进程来执行指定的命令或可执行程序。这个过程可以分为几个关键点来理解: 1. **执行DOS内部命令**: 当你需要执行DOS内部命令(如`dir`, `copy`, `del`等)时,有...

    在Android中调用二进制可执行程序

    下面将详细介绍如何使用Java语言中的`Runtime`类及其子类`Process`来调用二进制可执行程序: 1. **创建命令参数数组**: ```java String[] args = new String[2]; args[0] = "ls"; args[1] = "-l"; ``` 这里...

    java转exe可执行程序

    "java转exe可执行程序"这个资源正提供了这样的功能,它允许开发者将含有主方法(`main`方法)的Java程序转化为可以直接双击运行的.exe文件,使得非Java环境的用户也能轻松运行程序。 要将Java程序转换为.exe文件,...

    JAVA如何调用DOS命令.doc

    总之,Java调用DOS命令主要依赖`Runtime`和`Process`类,需要注意命令格式、标准输出处理以及资源管理等问题,以确保命令的正确执行和程序的稳定运行。在实际开发中,应充分考虑各种情况,以保证代码的健壮性和跨...

    JAVA执行shell命令小工具

    标题中的“JAVA执行shell命令小工具”指的是使用Java编程语言编写的小程序,它能够执行操作系统级别的Shell命令。在Java中,通常使用`Runtime.getRuntime().exec()`或者`ProcessBuilder`类来实现这一功能。这两个类...

    JAVA100例之实例41 执行系统命令

    这个"JAVA100例之实例41 执行系统命令"就是专门针对这一需求的一个示例,它展示了如何在Java程序中调用和执行系统命令。 Java通过`Runtime`类和`ProcessBuilder`类提供了执行系统命令的能力。这两个类都可以用来...

    java 中轻松实现 执行windows系统命令

    在Java编程环境中,有时我们需要与操作系统进行交互,执行一些系统级别的命令,比如创建文件、启动应用程序或者管理系统资源等。在Windows环境下,Java提供了一个叫做`java.lang.ProcessBuilder`的类,使得我们能够...

    把java程序编译成可执行文件的工具

    本篇将详细介绍如何使用Java的打包工具,特别是"jar"命令,来将Java程序转换为可执行的JAR(Java Archive)文件。 标题提及的“把Java程序编译成可执行文件的工具”主要指的是Java的JAR打包工具。JAR文件是一种特殊...

    java执行可执行文件或批处理

    在Java中执行外部可执行文件或批处理脚本是一种常见的需求,尤其是在需要调用系统级别的工具或者与操作系统进行交互时。通过Java的`Runtime`类及其提供的方法,我们可以方便地实现这一功能。本文将详细介绍如何在...

    java转成exe可执行文件

    Java编程语言以其跨平台的特性深受开发者喜爱,但有时为了方便非Java环境下的用户使用,我们需要将Java程序转换为Windows操作系统下的.exe可执行文件。在本案例中,开发者使用了Java的Swing库来构建图形用户界面...

    JAVA如何调用DOS命令

    Runtime 类提供了 exec() 方法,用于指示 Java 虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的 Process 对象实例。Process 对象可以控制该子进程的执行或获取该子进程的信息。 执行DOS内部命令...

    Java项目打包发布为可执行程序.doc

    总结来说,Java项目打包发布为可执行程序涉及的关键步骤包括:创建JAR文件、选择适当的打包工具(如exe4j或jsmooth)、配置工具以指定主类、JRE路径等,以及可能的JRE瘦身。这些方法可以帮助开发者将Java应用程序...

Global site tag (gtag.js) - Google Analytics