当前位置: 首页 > 面试题库 >

Java程序如何获得自己的进程ID?

夏侯鹏
2023-03-14
问题内容

如何获取Java进程的ID?

我知道有几种与平台相关的黑客,但是我希望有一个更通用的解决方案。


问题答案:

ManagementFactory.getRuntimeMXBean().getName()看起来是最好的(最近的)解决方案。它很短,并且可能在广泛使用的所有实现中起作用。

linux + windows上,它返回一个类似12345@hostname(12345是进程ID)的值。但是请注意,根据docs,不能保证该值:

返回代表正在运行的Java虚拟机的名称。返回的名称字符串可以是任意字符串,并且Java虚拟机实现可以选择在返回的名称字符串中嵌入特定于平台的有用信息。每个正在运行的虚拟机可以具有不同的名称。

在Java 9中,可以使用新的流程API:

long pid = ProcessHandle.current().pid();


 类似资料:
  • 问题内容: 部署Node.js的最佳方法是什么? 我有一个Dreamhost VPS(这就是他们所说的VM),并且我已经能够安装Node.js并设置代理。只要我保持打开节点时启动的SSH连接就可以了。 问题答案: 2016年答案 :几乎每个Linux发行版都随附systemd,这意味着 永久,monit,PM2等都不再需要-您的OS已经可以处理这些任务 。 制作一个文件(用您的应用名称替换“ my

  • 我想检查我的应用程序是否很好地获得选项。 java进程在docker容器中运行。 为了做到这一点,我要找到所创建进程的最大堆大小。 null 假设(ngcmx+ogcmx)=()可以吗? https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

  • 本文向大家介绍Java如何获取当前进程ID以及所有Java进程的进程ID,包括了Java如何获取当前进程ID以及所有Java进程的进程ID的使用技巧和注意事项,需要的朋友参考一下 首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程ID打印出来: 运行结果: ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理V

  • 问题内容: 如何查看Java进程中的线程数? 问题答案: 调试Java程序的有用工具,它提供了线程数和其他有关线程的信息:

  • 问题内容: 在Windows环境中,有一个API可以获取运行进程的路径。Unix / Linux中有类似的东西吗? 还是在这些环境中还有其他方法可以做到这一点? 问题答案: 在Linux上,符号链接具有可执行文件的路径。使用命令获取值。 在AIX上,此文件不存在。您可以比较和。

  • 问题内容: 我从shell脚本启动了一个后台进程,我想在脚本结束后终止该进程。 如何从我的shell脚本中获取此过程的PID?据我所知,变量包含当前脚本的PID,而不是后台进程。 问题答案: 您需要在启动时保存后台进程的PID: 您不能使用作业控制,因为它是一种交互式功能,并且与控制终端绑定在一起。脚本完全不必附加终端,因此作业控制不一定可用。