423 Stimmen

Wie kann ein Java-Programm seine eigene Prozess-ID erhalten?

Wie erhalte ich die Kennung meines Java-Prozesses?

Ich weiß, dass es mehrere plattformabhängige Hacks gibt, aber ich würde eine allgemeinere Lösung vorziehen.

-1voto

PartialData Punkte 55

Hier ist meine Lösung:

public static boolean isPIDInUse(int pid) {

        try {

            String s = null;
            int java_pid;

            RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean();
            java_pid = Integer.parseInt(rt.getName().substring(0, rt.getName().indexOf("@")));

            if (java_pid == pid) {
                System.out.println("In Use\n");
                return true;
            }
        } catch (Exception e) {
            System.out.println("Exception:  " + e.getMessage());
        }
        return false;
    }

-6voto

Subhash Punkte 313

Das habe ich verwendet, als ich eine ähnliche Anforderung hatte. Damit wird die PID des Java-Prozesses korrekt ermittelt. Lassen Sie Ihren Java-Code einen Server auf einer vordefinierten Portnummer erzeugen und führen Sie dann Betriebssystembefehle aus, um die PID herauszufinden, die auf dem Port lauscht. Für Linux

netstat -tupln | grep portNumber

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X