iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JavaProcess.waitFor()方法详解
  • 664
分享到

JavaProcess.waitFor()方法详解

2024-04-02 19:04:59 664人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录Java Process.waitFor()方法描述声明参数返回值异常实例process.waitFor()没有作用Java Process.waitFor()方法 Proces

Java Process.waitFor()方法

Process.waitFor()方法 将导致当前线程等待,直到该对象的进程结束,才返回调用。

描述

java.lang.Process.waitFor()方法将导致当前的线程等待,如果必要的话,直到由该Process对象表示的进程已经终止。此方法将立即返回,如果子进程已经终止。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。

声明

以下是java.lang.Process.waitFor()方法的声明


public abstract int waitFor()

参数

  • NA

返回值

此方法返回的退出值的过程。按照惯例,0表示正常终止。

异常

  • NA

实例

下面的例子说明了如何使用lang.Process.waitFor()方法。


package com.yiibai; 
public class ProcessDemo { 
   public static void main(String[] args) {
      try {
         // create a new process
         System.out.println("Creating Process...");
         Process p = Runtime.getRuntime().exec("notepad.exe");
 
         // cause this process to stop until process p is terminated
         p.waitFor();
 
         // when you manually close notepad.exe program will continue here
         System.out.println("Waiting over.");
 
      } catch (Exception ex) {
         ex.printStackTrace();
      } 
   }
}

编译运行结果:

Creating Process...

Waiting over.

process.waitFor()没有作用

最近在遇到关于视频需要转码 用到FFmpeg 使用cmd运行时,需要在cmd运行成功后进行操作,百度都说使用waitfor()方法,但是总是一闪而过, 没有起到等待完成的作用..


Process process = Runtime.getRuntime().exec("cmd /c start notepad.exe");
process.waitFor();

java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。

  • cmd /c dir 是执行完dir命令后关闭命令窗口。
  • cmd /k dir 是执行完dir命令后不关闭命令窗口。
  • cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
  • cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。

这个代码中的process.waitFor();并没有起到作用

后面的代码在调用的notepad.exe还没结束就继续运行了,

结果发现是因为在exec里面用了start

这样的后果是process.waitFor()等待的是一个一闪而过的用来打开exe的命令行窗口而已.

去掉start这个词,就会等到exe结束程序在继续执行了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: JavaProcess.waitFor()方法详解

本文链接: https://www.lsjlt.com/news/159807.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaProcess.waitFor()方法详解
    目录Java Process.waitFor()方法描述声明参数返回值异常实例process.waitFor()没有作用Java Process.waitFor()方法 Proces...
    99+
    2024-04-02
  • Python 魔法方法详解
    据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Py...
    99+
    2023-01-31
    详解 方法 魔法
  • Python魔方方法详解
    原文链接: https://fishc.com.cn/forum.phpmod=viewthread&tid=48793&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403 魔...
    99+
    2023-01-31
    魔方 详解 方法
  • java sort方法详解
    JAVA ARRAYS.SORT 方法 static void sort(ElementType[] a) 默认为升序排序 static void sort(ElementType[] a, int FromIndex,...
    99+
    2023-08-30
    java 数据结构
  • Java Process.waitFor()方法详解
    `Process.waitFor()`方法是`java.lang.Process`类中的一个方法。它是一个阻塞方法,用于等待外部进程的结束,并返回外部进程的退出值。以下是`Process.waitFor()`方法的详细说明:方法签名:`...
    99+
    2023-08-11
    java
  • JAVA toString方法详解
    JAVA toString方法 在Java中,我们经常会编写许多自定义类。在使用时,我们如何打印出这些类中实例变量? class value { private int s; publi...
    99+
    2023-10-27
    java 开发语言 后端
  • Python encode()方法和decode()方法详解
    目录Python encode()方法Python decode()方法Python encode()方法 encode() 方法为字符串类型(str)提供的方法,用于将 str 类...
    99+
    2022-12-28
    Python encode()方法 Python decode()方法
  • python类方法和静态方法详解
    目录类方法静态方法1特点2使用场景总结类方法 需要用装饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为参数 使用场景 1当方法中需要...
    99+
    2024-04-02
  • FragmentTabHost使用方法详解
    FragmentTabHost是support-v包下提供的用于集成和管理Fragment页面的组件. 今天要实现的效果图如下: 整体结构是MainActivity+5个模块的Fragment. MainActivity的布局如下:<...
    99+
    2023-05-30
    android fragmenttabhost
  • iperf3使用方法详解
    iperf3是一款带宽测试工具,它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。 小广告:欢迎喜欢网络技术的朋友加我微信:xfiles_sky,一起...
    99+
    2023-09-06
    服务器 网络 运维
  • 详解SpringBoot的Run方法
    SpringBoot的Run方法: 先跟踪启动类的run方法 进去之后还实现有一个run方法,继续进入 到这里,可以看到有一个SpringApplication的构造器,进入 ...
    99+
    2024-04-02
  • C# 扩展方法详解
    目录先来做一下MCSD试题;总结先来做一下MCSD试题;     答案是C; 题目是问怎么定义扩展方法; 下面来看一下扩展方法; 扩展方法是C# ...
    99+
    2024-04-02
  • Assert.assertEquals()方法参数详解
    junit.framework包下的Assert提供了多个断言方法. 主用于比较测试传递进去的两个参数. Assert.assertEquals();及其重载方法: 1. ...
    99+
    2024-04-02
  • VueRouter应用方法详解
    目录服务端路由路由的应用场景路由监听浏览器 hashchange 事件实现路由使用Vue Router+Vue2实现路由服务端路由 服务端路由时指的是服务器根据用户访问的 URL 路...
    99+
    2024-04-02
  • Optional 使用方法详解
    Optional的作用是什么?他都有哪些方法?阿里规范点名说尽量用Optional来避免空指针,那么什么场景用Optional?本篇文章围绕这三点来进行讲解。 目录 一、Optional类的来源二、Optional类是什么?三、Op...
    99+
    2023-08-17
    java 开发语言
  • JavaBigDecimal使用方法详解
    目录重要属性Double 转 BigDecimal基础方法数值比较剔除尾部的零重要属性 1、scale: 小数点后的位数。如将1.234构建为BigDecimal,scale属性则为...
    99+
    2022-12-20
    Java BigDecimal Java BigDecimal用法
  • KotlinWorkManager使用方法详解
    目录WorkMananger的简介WorkManager的基本用法使用WorkManager处理复杂的任务链式任务WorkMananger的简介 Google推出WorkManage...
    99+
    2023-01-28
    Kotlin WorkManager Kotlin WorkManager实例
  • Java中Date方法详解
    先进行专栏介绍 本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记 进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。 Date方法 Da...
    99+
    2023-08-16
    java 开发语言
  • Pandas中resample方法详解
    在Pandas中,resample方法用于对时间序列数据进行重新采样。重新采样是指将时间序列数据的频率从一个频率转换为另一个频率,比...
    99+
    2023-08-11
    Pandas
  • ToolBar使用方法详解
    ToolBar的出现是为了替换之前的ActionBar的各种不灵活使用方式,相反,ToolBar的使用变得非常灵活,因为它可以让我们自由往里面添加子控件.低版本要使用的话,可以添加support-v7包. 今天要实现的效果如下: 由上图可以...
    99+
    2023-05-30
    android toolbar
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作