How can I set the process name for a Java-program?

2022-08-31 16:09:44

If a Java program is started, it get's in the system process-monitor the name java. Many Java-programs are that way hard to distinguish. So it would be nice, if a way exists, to set the name, that will be shown in the process-monitor. I'm aware that this may work different on different Operating Systems.

A simple way would be, if the java-interpreter would support a switch to set the name, like this:

java -processname MyProgram -jar MyProgram

But I couldn't find such a switch, so it is probably non-existant. An API in Java to set the process-name would be also fine.

So, so you have any suggestions?


答案 1

I don't know if this is possible, but you could use a command line tool that comes with the JDK called 'jps'. It's like *nix , but just Java programs instead. shows all the arguments you have passed to java.psjps -v

Also, I have seen people attach a "process name" to their java processes by adding an unused to the args.-Dmyprocessname


答案 2

as @omerkudat said:

jps -v

prints out all java processes {processID, params list} If the params list is not enough to recognize the applications you need, try adding some dummy params when running them:

java -Dname=myApp -cp  myApp.jar some.client.main.MainFrame

This will print like:

7780 MainFrame -Dname=myApp

and you can use the process ID to kill / monitor it.


推荐