Ich muss die zugrunde liegende OS -PID für einen Prozess erhalten, den ich beginne. Die Lösung, die ich jetzt verwende, beinhaltet den Zugriff auf ein privates Feld durch Reflexion unter Verwendung von Code wie folgt: < /p>
private long getLongField(Object target, String fieldName) throws NoSuchFieldException, IllegalAccessException {
Field field = target.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
long value = field.getLong(target);
field.setAccessible(false);
return value;
}
< /code>
Es funktioniert, aber es gibt mehrere Probleme mit diesem Ansatz, eines ist, dass Sie zusätzliche Arbeiten an Windows erledigen müssen, da die Windows-spezifische Prozess-Unterklasse kein "PID" -Fiele, aber ein "Griff" -Feld speichert (so dass Sie ein bisschen JNA machen müssen, um die tatsächliche PID zu erhalten), und ein anderes, das mit Java-Abträgen, die mit Java-9-Operation ein Haufen von Hündern sind, wie ein Haufen von Scrus-Warnungen, wie ein Haufen von Scray, wie "Hündchen, wie ein Haufen von Scrus-Warnungen wie" Hündchen "-Striggern, wie ein Haufen, wie ein Haufen von Scrus, wie" Hündchen, wie ein Haufen von Scrus-Warnungen, wie "Hündchen, wie ein Haufen von Scrus, wie" Hündchen, wie ein Haufen, wie ein Haufen sanaler Warn wie ", hat ein Haufen salierter Warn. Aufgetreten ". Sollte dies nicht überhaupt von Java entlarvt werden?
Wie bekomme ich PID aus dem Prozess ohne illegale Zugriffswarnung mit Java 9+? ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post