如何在操作系统中给java进程命名(java除外)

我正在玩一些微服务并在我的笔记本电脑上运行它们,只需为每个微服务分配一个新端口。 问题是我想重新启动其中一个我必须关闭它们因为在操作系统中进程都被称为java。 虽然我有时可以猜到最后开始有最高的pid等是不是一个安全的赌注…

那么,有没有办法启动java应用程序并在操作系统中为其分配名称? 也许是这样的

java --Dos.name MyFirstService -jar MyJar.jar.

如果您需要能够区分不同的java程序,可以使用jps命令,该命令为您提供所有Java进程的列表并运行您的程序

 java -Dname=myFirstService -cp myFirstService.jar some.client.main.MyFirstService 

然后,如果你这样做:

 jps -v 

您将正确地看到您的过程。

如果您需要在操作系统级别更改进程名称,我建议您使用http://launch4j.sourceforge.net/

在Windows下,你不能(除非安装某种posix子系统)。

在Linux下,您可以使用带有-a "newName"选项的exec命令来为您想要生成的进程添加别名。

喜欢

 exec -a "myJar" /path/to/java -jar /path/to/jar.jar 

java -jar /full/path/to/hello.jar

然后jps命令将显示

 hello.jar