Wie beendet man einen Process in Java Platform unabhänging?

SirAntonius

Mitglied
Hallo liebes Java-Forum,

Ich möchte einen Process-Killer schreiben, der Plattform unabhängig ist, doch ich find trotz Google einfach keine Möglichkeit dazu. Vielleicht könnt ihr mir helfen. 🙂

Das hab ich zum Process beenden auf Windows gefunden:

Java:
 Runtime rt = Runtime.getRuntime();
  if (System.getProperty("os.name").toLowerCase().indexOf("windows") > -1) 
     rt.exec("taskkill " +....);
   else
     rt.exec("kill -9 " +....);

Doch auch das funktioniert irgendwie nicht richtig...


mfG und so,

SirAntonius
 
Gibts nicht. Java ist zu high-level. In deinem Beispiel rufst du auch nur irgendwelche Fremdprogramme auf. Aber [c]kill -9 <pid>[/c] für Linux würde stimmen. Wenn du nur den pname kennst, müsstest du [c]killall[/c] verwenden, was wiederum alle Prozesse mit diesem Namen killen würde.
 
Danke erstmal faetzminator, das mit dem Fremdprogramm weiß ich schon, (is comandline meine ich), aber trotzdem danke, da du meine Frage beantwortet hast, auch wenn mir die Antwort nich innen Kram passt... 😀

mfG und so

SirAntonius
 
Gibts nicht. Java ist zu high-level. In deinem Beispiel rufst du auch nur irgendwelche Fremdprogramme auf. Aber [c]kill -9 <pid>[/c] für Linux würde stimmen. Wenn du nur den pname kennst, müsstest du [c]killall[/c] verwenden, was wiederum alle Prozesse mit diesem Namen killen würde.

SICHER das java dafür zu high-level ist ? dann darf ich auch dir genau wie TO mal ein blick in diese page empfehlen

[japi]Process[/japi]

public abstract void destroy()
Kills the subprocess. The subprocess represented by this Process object is forcibly terminated.

nur so als info das es angeblich nicht möglich wäre einen sub-process zu killen ...

@TO
setzt vorraus das du ein Process-object hast ... wie es von Runtime.exec() und ProcessBuilder.start() erzeugt wird
 
philosophisch:
ein Prozess ist ja schon für sich plattformabhängig, ebenso abhängig ist dann dessen Starten, Killen usw.
 
Zuletzt bearbeitet von einem Moderator:
hmm ... wenn TO kein Process-object hat weil eben der entsprechende process nicht innerhalb der JVM gestartet wurde ... dann KANN man nur OS-mittel einsetzen ...
 

Zurück
Oben