java 调用本地程序

本文介绍如何使用Java通过Runtime类实例调用本地程序并控制子进程,包括创建子进程、等待进程结束及获取返回值等操作,并探讨了程序退出状态的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.testPdf;

import java.io.IOException;

public class testExe {
public void useExe() throws IOException, InterruptedException{
Process p = Runtime.getRuntime().exec("notepad");//调用本地记事本程序
      p.waitFor();
      System.out.println("return code: " + p.exitValue());
}
  public static void main(String[] args) throws IOException, InterruptedException {
System.out.println("bgin");
 testExe te=new testExe();
te.useExe();
System.out.println("end");
}
}

java程序启动之后,JVM(java虚拟机)会实例化一个Runtime类,这是一个运行时类实例,包含这个java程序运行的所有信息,一个程序会实例化一个Runtime类且只能实例化一个Runtime类。我们可以通过这个Runtime类实例操作程序的运行。它的exit(int status)方法会终止程序的运行。例:
Runtime.getRuntime().exit(0);
其中参数status表示状态,0表示正常退出,非0表示异常退出。非0参数有什么用呢?

addShutdownHook(Thread hook)方法可以将一个Thread可程序的关闭hook(挂/联系)起来,程序退出前,会执行这个方法,这样我们可以根据退出状态作相应的善后操作。

另外,System.exit(int status)也是调用这个Runtime类实例的退出方法来间接实现程序的退出的。



再加一点,Runtime类可以创建子进程,如下:
Process p=Runtime.getRuntime().exec("notepad");
这个语句将会创建一个记事本程序(它是Runtime类创建的子进程)
p.destroy();
这个语句终止刚才创建的子进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值