如何检查是否有。exe程序正在Windows上运行(正在运行)?
我正在制作java应用程序,更新一个。exe程序。所以,如果某个客户端使用了该exe程序,我的应用程序会要求关闭exe程序,并在关闭后自动替换。exe文件和新文件。
下面是一个完整的代码,用于检查应用程序是否在Windows
系统上运行:
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public class ApplicationUtilities
{
public static void runApplication(String applicationFilePath) throws IOException, InterruptedException
{
File application = new File(applicationFilePath);
String applicationName = application.getName();
if (!isProcessRunning(applicationName))
{
Desktop.getDesktop().open(application);
}
}
// http://stackoverflow.com/a/19005828/3764804
private static boolean isProcessRunning(String processName) throws IOException, InterruptedException
{
ProcessBuilder processBuilder = new ProcessBuilder("tasklist.exe");
Process process = processBuilder.start();
String tasksList = toString(process.getInputStream());
return tasksList.contains(processName);
}
// http://stackoverflow.com/a/5445161/3764804
private static String toString(InputStream inputStream)
{
Scanner scanner = new Scanner(inputStream, "UTF-8").useDelimiter("\\A");
String string = scanner.hasNext() ? scanner.next() : "";
scanner.close();
return string;
}
}
例如,您可以使用runApplication()
方法仅在应用程序尚未运行时运行它:
ApplicationUtilities.runApplication("C:\\Program Files (x86)\\WinSCP\\WinSCP.exe");
同样的原则也适用于删除可执行文件。
您可以在java程序中运行以下语句。在此之前,您需要知道任务管理器中任务的名称。假设你想看到Word正在运行。然后运行MS Word,进入任务管理器,在“进程”选项卡下,您应该会看到一个名为Word的进程。exe
。找出你目标流程的名称。一旦完成,只需运行以下代码:
String line;
String pidInfo ="";
Process p =Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
pidInfo+=line;
}
input.close();
if(pidInfo.contains("your process name"))
{
// do what you want
}
问题内容: 如何检查Windows上是否正在运行(正在执行)某些.exe程序? 我正在制作更新一个.exe程序的Java应用程序。因此,如果某个客户端使用了该exe程序,则我的应用程序要求关闭exe程序,并在关闭后自动用新的exe文件替换。 问题答案: 您可以在Java程序中运行以下语句。在此之前,您需要知道中的任务名称。假设您要查看MS-Word正在运行。然后运行MS- Word,转到任务管理器
问题内容: 我是一名Android开发人员,我想在我的应用程序中编写一条语句。在此语句中,我要检查默认浏览器(Android OS中 问题答案: 添加下面的Helper类: 现在,你可以从以下代码中检查所需的应用程序是否正在运行:
我想检查某个程序是否在计算机启动时运行,我为此访问了类: 输出确实是,因为该程序实际上是在windows启动时运行的,但是当我通过禁用该程序启动时(它的状态变为),下次我运行上面的代码时,结果仍然是,尽管该程序不再是启动程序的一部分。 这让我得出了一个简单的结论,当windows任务管理器禁用启动程序时,它不会删除注册表项中的项,而是更改了它的另一个值..但是我无法找到那个更改的值。 我希望有人能
问题内容: 如何在Windows系统上安装程序(例如检查Mozilla Firefox)时如何使用Java进行检查? 问题答案: 我假设您在谈论Windows。由于Java旨在成为一种与平台无关的语言,并且每种平台如何确定它的方式各不相同,因此没有标准的Java API可以对此进行检查。但是,您可以借助对Windows注册表进行爬网的DLL上的JNI调用来完成此操作。然后,您可以只检查注册表中是否
问题内容: 作为构建穷人看门狗并确保应用程序崩溃的一种方法(直到我弄清原因),我需要编写一个PHP CLI脚本,该脚本将由cron每5百万次运行一次,以检查该进程仍在运行。 基于此页面,我尝试了以下代码,但是即使我使用虚假数据对其进行调用,它也始终返回True: 接下来,我尝试了这段代码 … …但是没有达到我的期望: FWIW,此脚本与PHP 5.2.5的CLI版本一起运行,并且操作系统为uCli
问题内容: 我环顾了一阵子,我很惊讶地发现Gunicorn是否在Windows上运行,没有任何信息。有谁知道是这种情况,如果是,我在哪里可以找到有关它的文档? 问题答案: Gunicorn用于UNIX环境,并且与Windows不兼容。另外,有关更多信息,请参阅它的文档。