gpt4 book ai didi

Java:如何检查另一个类文件是否正在运行?

转载 作者:行者123 更新时间:2023-12-01 09:17:03 25 4
gpt4 key购买 nike

嗯,我正在做一个项目来测试我的 Java 编程知识。

我的项目是一个游戏,我正在为其制作某种启动器,该启动器会在项目完全启动时关闭。我在网上搜索了一下如何检查java程序是否正在运行。我找到了一种查看程序是否正在运行的方法(here is the link to it或参见下面的代码)。我测试了它,但它不起作用,所以我寻找答案来检查进程/程序是否在“更大”的程序下运行(例如:firefox 中的多个窗口)。我没有找到它,所以我希望你知道答案。

这是检查我发现的程序是否正在运行的方法(And here is the link again):

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("file.class"))
{
// do what you want
}

最佳答案

您可以检查文件的内容,而不是检查游戏进程是否正在运行(这对于 pid 来说是不可能的,因为这是一个数字):

File f = new File("path_to_file.txt");
BufferedReader br;
String text = "";
try {
br= new BufferedReader(new FileReader(f));
String line;
while((line = br.readLine())!=null){
text+=line;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(text.equals("started")){
// we have to make sure it can work next time so we clear the file's contents
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write("");
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
//close launcher
}

然后唯一要做的就是让游戏在启动后向该文件写入文本“started”。

关于Java:如何检查另一个类文件是否正在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com