`

java调用外部程序的方法

    博客分类:
  • java
阅读更多
1 java调用外部程序的方法 
在一个java应用中,可能会遇到这样的需求,就是需要调用一些外部的应用做一些处理,比如调用excel,然后在继续程序的运行。 
下面就开始进入java调用外部程序的一些演示,让java应用更加灵活。 
1:最简单的演示: 
Runtime.getRuntime().exec("notepad.exe"); 
记事本被打开了是吧。 
2:传递应用程序的参数: 
Runtime runtime=Runtime.getRuntime(); 
String[] commandArgs={"notepad.exe","c:/boot.ini"}; 
runtime.exec(commandArgs); 
现在不单单打开了记事本,而且还装载了boot.ini文件是吧。 
现在已经完全解决了调用外部程序的问题,不是吗,但是大家会发现exec方法是有返回值,那么继续我们的演示吧。 
1:Process的waitFor: 
Runtime runtime=Runtime.getRuntime(); 
String[] commandArgs={"notepad.exe","c:/boot.ini"}; 
Process process=runtime.exec(commandArgs); 
int exitcode=process.waitFor(); 
System.out.println("finish:"+exitcode); 
执行上面的代码以后发现不同的地方了吗,waitFor会使线程阻塞,只有外部程序退出后才会执行System.out.println("finish:"+exitcode); 
这个功能很有用是吧,因为多数时候你都需要等待用户处理完外部程序以后才继续你的java应用。 
2:Process的destroy: 
Runtime runtime=Runtime.getRuntime(); 
String[] commandArgs={"notepad.exe","c:/boot.ini"}; 
final Process process=runtime.exec(commandArgs); 
new Thread(new Runnable(){ 
@Override 
public void run() { 
try { 
Thread.sleep(5000); 
} catch (InterruptedException e) {} 
process.destroy(); 
}}).start(); 
int exitcode=process.waitFor(); 
System.out.println("finish:"+exitcode); 
这个演示稍微复杂了一些,如果你等待5秒,就会发现记事本自动关闭了,是的,这个就是destroy方法的作用,强制关闭调用的外部程序。 
不用我解释了吧,这是非常有用的方法。 
以上的部分已经足够你调用并控制你的外部应用了。如果需要更详细的信息,看javadoc文档吧。 
最后的说明:ProcessBuilder这个1.5新增的类也可以完成同样的任务,Runtime就是调用了这个类。


分享到:
评论

相关推荐

    Java调用外部程序命令

    ### Java调用外部程序命令详解 #### 一、引言 在进行系统集成或自动化脚本编写时,经常需要从Java程序中调用外部程序或命令。这种需求常见于多种场景,例如远程服务管理、批处理操作等。本文将详细介绍如何使用...

    用JAVA调用外部程序并截出程序运行结果

    本文将详细讲解如何使用Java调用外部程序以及如何捕获并处理程序的输出。 首先,`Runtime.getRuntime().exec()`方法是Java中最基础的调用外部程序的方式。它允许我们执行系统命令,并返回一个`Process`对象,通过该...

    用java 调用外部程序

    在Java中,调用外部程序的主要方法是使用`Runtime`类或`ProcessBuilder`类。`Runtime.getRuntime().exec()`方法是最常用的,它可以执行系统命令并返回一个`Process`对象,用于管理外部程序的生命周期。下面是一个...

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

    在 Java 中,我们可以使用 `Runtime` 类的 `exec` 方法来调用其他.exe 可执行程序。 例如,在上面的代码中,我们可以看到使用 `Runtime` 类来打开 cmd 命令行的代码: ```java Runtime.getRuntime().exec("cmd /k ...

    java调用外部jar文件

    总结来说,Java调用外部jar文件涉及以下几个关键点: 1. 理解Java类加载机制,包括系统类加载器和自定义类加载器。 2. 创建自定义类加载器,重写`findClass()`方法,从jar文件中读取并加载类。 3. 使用加载的类进行...

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

    在Java编程中,有时候我们需要执行一些操作系统级别的任务,例如启动一个外部程序、执行一些系统命令等。这通常可以通过Java的`Runtime`类实现,尤其是通过`Runtime.exec()`方法来创建一个新的进程。本文将详细介绍...

    使用JAVA调用应用程序.pdf

    使用 Runtime.exec() 方法可以调用外部应用程序,例如,我们可以使用以下代码来调用 Notepad++ 编辑器: ```java Runtime.getRuntime().exec("notepad++.exe"); ``` 这将打开 Notepad++ 编辑器,用户可以在其中编辑...

    java调用外部文件

    此外,为了安全性和资源管理,避免内存泄漏,最好在调用外部程序后关闭相关流并监控进程状态。这可以通过`Process`对象的`waitFor()`方法实现,等待外部程序完成执行。 总的来说,Java提供了一定的灵活性来调用和...

    调用外部程序.rar

    在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来调用外部程序。这个方法会返回一个`Process`对象,我们可以用它来获取程序的输出流或结束进程。 ```java try { Process process = Runtime....

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...

    java调用c c++程序实例

    首先,Java调用C/C++程序的主要技术是通过Java Native Interface (JNI)。JNI是Java平台的一部分,允许Java代码和其他语言写的代码进行交互。它为Java程序员提供了一种方式来编写本地方法,这些本地方法可以调用由C/...

    java调用Windows应用程序

    3. **安全性考量**:调用外部程序可能会带来潜在的安全风险,尤其是对于不可信的源文件,需要进行严格的验证和限制。 #### 五、总结 通过上述介绍,我们可以看到Java程序调用Windows应用程序是一个非常实用且功能...

    java调用json参数的webservice

    在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...

    个人亲测oracle触发器调用java程序

    这将创建一个名为test的存储过程,该存储过程调用Java程序的modify方法。 四、创建触发器 最后,我们需要创建一个触发器来调用存储过程。我们可以使用CREATE TRIGGER语句来实现这一步骤。例如: ``` create or ...

    java中调用控制台程序

    调用外部程序后,记得关闭相关的输入输出流,并调用`destroy()`方法结束子进程,以避免资源泄露。 6. **异常处理**: 执行外部命令可能会抛出IOException,需要捕获并处理。 以上就是关于"java中调用控制台程序...

    Java调用系统执行程序(OS Command)

    下面将详细解释如何通过Java调用系统执行程序,以标题和描述中的例子作为基础进行讲解。 首先,我们来看一下提供的代码片段。这段Java代码展示了如何在Windows 2000环境下调用名为SayHi.exe的外部程序: ```java ...

    java通过url调用接口

    在Java编程中,通过URL调用接口是一种常见的网络通信方式,尤其在Web服务和API交互中扮演着重要角色。这个项目提供了一种方法,通过URL发送请求并接收响应,然后将响应的字符串转换为JSON格式进行处理。接下来,我们...

    java调用webservice程序

    Java调用WebService程序是开发中常见的一种跨平台通信方式,主要通过SOAP(Simple Object Access Protocol)协议实现。本文将深入探讨如何使用Java来调用WebService接口,并涉及所需的库和步骤。 首先,理解...

    java调用windows命令

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

Global site tag (gtag.js) - Google Analytics