此博估计唯一一个完整可编译的代码哈哈
import java.io.*;
import java.util.*;
//Commons Logging imports
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TestProcess{
public static final Log LOG = LogFactory.getLog(TestProcess.class);
public static int doWaitFor(Process p) {
int exitValue = -1; // returned to caller when p is finished
try {
InputStream in = p.getInputStream();
InputStream err = p.getErrorStream();
boolean finished = false; // Set to true when p is finished
while(!finished); {
try {
while( in.available() > 0) {
// Print the output of our system call
Character c = new Character( (char) in.read());
System.out.print( c);
}
while( err.available() > 0) {
// Print the output of our system call
Character c = new Character( (char) err.read());
System.out.print( c);
}
// Ask the process for its exitValue. If the process
// is not finished, an IllegalThreadStateException
// is thrown. If it is finished, we fall through and
// the variable finished is set to true.
exitValue = p.exitValue();
finished = true;
}
catch (IllegalThreadStateException e) {
// Process is not finished yet;
// Sleep a little to save on CPU cycles
Thread.currentThread().sleep(500);
}
}
}
catch (Exception e) {
// unexpected exception! print it out for debugging...
System.err.println( "doWaitFor();: unexpected exception - " +
e.getMessage());
}
// return completion status to caller
return exitValue;
}
public static void main(String args[]){
String[] cmd = {"/temp/single.sh","656.gif"};
File directory = new File("/temp/");
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.directory(directory);
Map<String,String> map = pb.environment();
pb.redirectErrorStream(true);
try{
Process process = pb.start();
int exit = process.waitFor();
//int exit = TestProcess.doWaitFor(process);
System.out.println(exit);
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
在Java编程语言中,`Process`类是处理操作系统进程的核心组件。它允许Java应用程序与操作系统交互,执行外部命令,例如运行系统工具或者控制其他应用程序。本文将深入探讨`JAVA Process`的使用,以及如何通过Java...
Java Process Manager是一个基于Java语言开发的工具,它利用JNI(Java Native Interface)技术与Windows 32 SDK(Software Development Kit)进行交互,旨在提供类似操作系统任务管理器的功能,特别是针对Java进程的...
"Image-Process.rar_Java process-Thread_image process java_java im"这个标题暗示了我们将探讨如何在Java中处理图像,特别是涉及线程管理和多线程图像处理。 首先,让我们了解Java中的图像处理基础。Java提供了`...
Java Process命令小全 Java Process命令小全是Java中的一种命令,用于执行操作系统的命令。通过Runtime.getRuntime().exec(commandStr)方法可以调用执行cmd指令。 cmd命令是Windows操作系统中的命令行工具,用于...
Java中的`Process`类是用于表示操作系统级别的进程的抽象类。这个类允许Java应用程序与操作系统交互,执行系统命令,例如启动新的进程、读取进程的输出流、写入进程的输入流以及控制进程的生命周期。在Java中,我们...
Java Process详解及实例 Java Process是Java语言中一个重要的概念,它允许Java程序与外部进程进行交互。通过Java Process,可以实现对外部命令的调用、文件操作、系统设置等功能。 在Java中,Process类是Java ...
Forker 是一个 Java 库,可让您更好地控制外部进程并提供 ProcessBuilder 的替代品。 该库基本上有 3 个主要组件: ForkerClient 替换 ProcessBuilder 只需构建一个进程,让 Forker 处理检查退出代码和重定向或捕获...
实现内存动态分区,运用Java语言,一共四个类,这是process类
我的文章《Java学习笔记第12期——Java流程控制Part4》配套笔记文件 文章地址:https://blog.csdn.net/lbwnbnbnbn/article/details/115283249
这里通过`cmd.exe`调用`wmic`命令,传入参数`process where name='java-test.exe' call terminate`来终止名为`java-test.exe`的进程。 - `IOException`处理:如果执行命令时出现错误,如无法找到命令或权限不足等...
我的博文《笔记分享第10期——Java流程控制Part2》配套笔记文件 博文地址:https://blog.csdn.net/lbwnbnbnbn/article/details/114793246
我的博文《笔记分享第08期——Java基础语法Part7》配套笔记文件 博文地址:https://blog.csdn.net/lbwnbnbnbn/article/details/114228227
我的博文《笔记分享第11期——Java流程控制Part3》配套笔记文件 博文地址:https://blog.csdn.net/lbwnbnbnbn/article/details/115022893
Java提供了Runtime类和Process类来实现这一功能。以下是如何使用Java调用Windows命令行的详细步骤和注意事项: 1. **调用外部程序** - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行...
在Java编程语言中,获取硬件信息是通过操作系统提供的接口或者第三方库来实现的。下面将详细介绍如何使用Java来实现读取计算机的硬件信息。 首先,Java标准库并不直接支持读取硬件信息,如CPU型号、内存容量、硬盘...
### Java执行可执行文件或批处理 在Java中执行外部可执行文件或批处理脚本是一种常见的需求,尤其是在需要调用系统级别的工具或者与操作系统进行交互时。通过Java的`Runtime`类及其提供的方法,我们可以方便地实现...
Java提供了`Runtime`类以及其子类`Process`来实现对操作系统的调用。其中,`Runtime.getRuntime().exec(command)`是执行外部程序的主要方法,它可以创建一个新进程并返回一个`Process`对象,用于控制该进程或获取其...
在Java编程环境中,有时我们需要操作操作系统级别的任务,例如在运行某些程序或自动化脚本时,可能需要结束掉后台运行的Microsoft Word进程。这个过程涉及到Java的进程管理和操作系统交互。下面将详细讲解如何在Java...
在Java程序中,你需要监听`process`对象的输入流和错误流,以便获取转换过程中的输出信息和可能出现的错误。 5. 前端页面集成: 转换完成后,前端页面可以通过HTML5的`<video>`标签和`source`标签来播放`M3U8`流...
在Java编程环境中,我们可以利用Java的定时任务框架如ScheduledExecutorService或者第三方库Quartz来实现MySQL数据库的定时备份。MySQL数据库备份通常涉及到两种主要的方法:全量备份和增量备份。全量备份是复制整个...