如何获取Java进程的id?

我知道有几种依赖于平台的黑客,但我更喜欢一种更通用的解决方案.

推荐答案

不存在能够保证在所有jvm实现中工作的独立于平台的方式.

在Linux+Windows上,它返回一个类似"12345@hostname"的值(12345是进程ID).请注意,尽管是according to the docs,但不能保证此值:

返回表示正在运行的Java虚拟机的名称.这个

In Java 9新的process API可用于:

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

Java相关问答推荐

试图弄清楚资源未能在我的Android应用程序中调用关闭警告

编译期间错误(Java 0000)Android .Net MAUI

我想了解Java中的模块化.编译我的应用程序时,我有一个ResolutionException

Spring Batch 5-不要让它在数据库中自动创建表

缩小画布比例后更改滚动窗格的内部大小

在for—each循环中的AnimationTimer中的if语句'

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

try 创建一个对象,使用它,然后使用一条语句将其存储为列表

Java LocalTime.parse在本地PC上的Spring Boot中工作,但在Docker容器中不工作

JDK 21-为什么线程局部随机S nextInt不直接用Super.nextInt实现?

有没有更快的方法在N个容器中删除重复项?

Spring Boot&;Docker:无法执行目标org.springframework.boot:spring-boot-maven-plugin:3.2.0:build-image

从LineChart<;字符串、字符串和gt;中删除数据时出现特殊的ClassCastException;

将stringBuilder + forloop转换为stream + map

在Oracle db中,当我们提供字符串而不是数字时,比较是如何工作的?

IntelliJ IDEA中的JavaFX应用程序无法在资源中找到CSS文件

Java.time.OffsetDateTime的SQL Server数据库列类型是什么?

在Java中将对象&转换为&q;HashMap(&Q)

如何在右击时 Select 新行?

控制器建议异常处理