我正在编写几个Java程序,在完成我想做的所有事情之后,需要在单独的JVM中终止/清理工作。为此,我将需要获取要创建的Java进程的PID。
jps -l
在Windows和Unix上均可使用。您可以使用从Java程序中调用此命令Runtime.getRuntime().exec
。的样本输出jps -l
如下
9412 foo.bar.ClassName
9300 sun.tools.jps.Jps
您可能需要对此进行解析,然后检查标准名称,然后从相应的行中获取pid。
private static void executeJps() throws IOException {
Process p = Runtime.getRuntime().exec("jps -l");
String line = null;
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream(), "UTF-8"));
while ((line = in.readLine()) != null) {
String [] javaProcess = line.split(" ");
if (javaProcess.length > 1 && javaProcess[1].endsWith("ClassName")) {
System.out.println("pid => " + javaProcess[0]);
System.out.println("Fully Qualified Class Name => " +
javaProcess[1]);
}
}
}
问题内容: 如何查看Java进程中的线程数? 问题答案: 调试Java程序的有用工具,它提供了线程数和其他有关线程的信息:
问题内容: 我从shell脚本启动了一个后台进程,我想在脚本结束后终止该进程。 如何从我的shell脚本中获取此过程的PID?据我所知,变量包含当前脚本的PID,而不是后台进程。 问题答案: 您需要在启动时保存后台进程的PID: 您不能使用作业控制,因为它是一种交互式功能,并且与控制终端绑定在一起。脚本完全不必附加终端,因此作业控制不一定可用。
问题内容: 我试图执行一个脚本,该脚本执行一个EXPECT脚本和一个生成的进程,其中包含退出代码。但是我无法将生成的进程的退出代码获取到主脚本。作为成功,我总是零。 期望脚本是: 产生的脚本: 执行Expect脚本: 问题是我无法获得生成的退出返回代码以期望脚本。我希望生成脚本的退出代码3到主脚本,并且主脚本应该以退出代码3退出。 请帮助我将生成的退出代码获取到主脚本。 问题答案: 在格伦的帮助下
本文向大家介绍Java如何获取当前进程ID以及所有Java进程的进程ID,包括了Java如何获取当前进程ID以及所有Java进程的进程ID的使用技巧和注意事项,需要的朋友参考一下 首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程ID打印出来: 运行结果: ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理V
问题内容: 我遇到了一个问题。有时,当我的JUnit测试正在运行时,请命令webDriver.quit();。不会杀死chromedriver进程,因此下一个测试无法开始。在那种情况下,我想添加一些可以在Linux上手动终止进程的方法,但是我不知道如何获取chromedriver的PID,因此可以执行以下操作:Runtime.getRuntime()。exec(KILL + PID); 问题答案:
Charset.defaultCharset()和file.encoding是JVM的字符集,而不是OS、控制台和终端的字符集。 现在我创建一个来运行程序,并使用要读取输出,如何为进程找到正确的字符集(是正确的,但似乎不是通用的)?