import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class StreamGrabber extends Thread {
private final InputStream stream;
private final List<String> holder;
public StreamGrabber(InputStream stream) {
this(stream, null);
}
public StreamGrabber(InputStream stream, List<String> holder) {
this.stream = stream;
this.holder = holder;
}
@Override
public void run() {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(stream));
String line = null;
while ((line = br.readLine()) != null) {
if (holder != null)
holder.add(line);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public static Process performCommand(String command) {
try {
return Runtime.getRuntime().exec(command);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
// notepa.exe关闭记事本进程
String command = "taskkill /f /im notepa.exe";
Process proc = performCommand(command);
List<String> outputs = new ArrayList<String>();
new StreamGrabber(proc.getInputStream(), outputs).start();
}
}
分享到:
相关推荐
本文将详细介绍如何使用Java代码实现基于进程名称的进程终止功能,特别是针对Windows操作系统下的`java-test.exe`进程。这不仅适用于开发者调试自身程序时的需求,也适用于系统管理员批量管理运行在Windows服务器上...
在Java编程环境中,实现守护进程(Daemon)以及创建多个进程和JVM是非常常见的需求,特别是在构建分布式系统或者需要持续后台运行的服务时。本篇将详细阐述如何使用Java来实现这些功能。 守护进程通常是一个在后台...
在Java编程环境中,有时我们需要操作操作系统级别的任务,例如在运行某些程序或自动化脚本时,可能需要结束掉后台运行的Microsoft Word进程。这个过程涉及到Java的进程管理和操作系统交互。下面将详细讲解如何在Java...
后台进程的重构、类图设计和架构规划对于保证系统的稳定性和性能至关重要。通过分析《后台进程重构.doc》、查看《后台进程类图.vsd》和理解《后台进程架构.vsd》,我们可以深入理解如何在实际项目中高效地设计和实施...
Java模拟操作系统是一个基于Java编程语言实现的微型操作系统模型,它主要涵盖了四个核心领域:内存管理、进程管理、文件管理和进程通信。这样的项目旨在帮助开发者理解操作系统的工作原理,并提供了一个实践平台来...
- **Windows 系统进程**: ```java Process process = Runtime.getRuntime().exec("cmd.exe /c tasklist"); ``` 这里,`Runtime.getRuntime().exec()`方法用于执行命令,`/c`参数表示执行完命令后关闭命令提示...
在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来执行系统命令,例如在Windows上使用`taskkill`命令来终止一个进程。例如,如果JBOSS服务器的进程ID为1234,我们可以通过以下代码终止它: ```java ...
守护进程在Linux或Unix等类Unix系统中广泛存在,但Java作为一种跨平台的语言,其本身并不直接支持守护进程的概念。不过,由于Java的跨平台特性,开发者可以通过模拟实现类似的功能。 在Java中,我们可以利用线程...
Java进程间的管道通信是一种进程间通信(IPC,...总的来说,Java进程间的管道通信虽然需要借助底层系统功能,但仍然是一个可行且高效的通信方式。通过理解这些概念和注意事项,开发者可以构建出可靠的多进程通信系统。
进程的生命周期管理还包括对进程资源的管理和控制,例如,通过CloseHandle()函数关闭由CreateProcess()返回的句柄,确保资源的有效释放。同时,进程优先级的设置也是进程管理的一部分,通过dwCreationFlags参数可以...
在Linux系统中,Java应用程序通常以两种主要方式运行:直接通过命令行或作为守护进程(daemon)。本篇文章将深入探讨如何使用`sh`脚本来启动Java的JAR程序,并将其设置为守护进程,以便在后台持续运行,即使用户注销...
3. **注意事项**:使用批处理文件结束进程时要谨慎,特别是对那些重要的系统进程。误操作可能导致应用程序或系统不稳定。在实际操作前,最好先确认要结束的进程是否确实需要关闭,并确保有权限执行`taskkill`命令。 ...
在代码中,我们创建了一个线程池,然后执行一个打印任务,打印出当前java进程的总线程数。结果显示,在创建到15万个线程时,内存占用百分百后java应用崩溃。说明线程未被回收。 因此,使用完线程池后一定要关闭,...
无需复杂的操作系统知识,一个简单的bat脚本即可达成进程管理的目的。 对于Java项目的运维和部署来说,这个资源具有很高的参考价值。通过导入并简单配置这个脚本,项目 gains 了高可用性,大大减轻了人工监控和维护的...
完成这些步骤后,重启Tomcat服务,在任务管理器中看到的进程名就会从`java.exe`变为`ifms.exe`。 #### 五、增大Tomcat启动内存 1. **增加启动内存**: - 若要增加Tomcat的启动内存,需要编辑`tomcat_home\bin`目录...
Java进程间通信(IPC,Inter-Process Communication)是多进程应用程序中实现不同进程间数据交换的方式。以下是对标题和描述中涉及的知识点的详细说明: 1. **管道(Pipe)**: 管道是一种半双工通信方式,允许...
本篇文章将深入探讨如何使用JNI来查询系统进程列表。 首先,我们需要了解JNI的基本原理。JNI提供了一种方式,让Java代码可以调用C/C++编写的本地方法,同时也允许C/C++代码调用Java对象的方法。通过定义`native`...
6. 系统环境:某些系统设置或权限问题可能阻止Checkstyle和Jacob正确地启动或关闭进程。检查操作系统权限和环境变量设置,确保它们满足工具的需求。 7. 版本兼容性:不同版本的Checkstyle和Jacob可能存在兼容性问题...
### Java系统命令调用 在Java编程中,有时我们需要通过Java程序来执行操作系统级别的命令,例如启动、停止服务,或者进行一些系统级别的操作。本文将详细介绍如何使用Java Runtime类中的`getRuntime().exec()`方法...
标题 "Java加载dll,导致Java进程内存泄露" 描述了一个在Java编程中常见的问题,即通过Java Native Interface (JNI)加载动态链接库(dll)可能导致内存泄漏。这通常发生在Java程序与C/C++代码交互时,因为JNI允许Java...