# Externes Programm beenden mit eigenem Programm beenden



## w00t (31. Aug 2006)

Hi @ all,

ich habe folgendes Problem. 

Ich habe ein Konsolenprogramm (nicht meins, kein java), dieses will ich mit (m)einem java programm beenden. Ich starte es nicht selber. 
Was ich von dem Programm habe ist der Name und der Pfad. Quellcode ist auch nicht offen (kein open source ).

Das ich ein Programm mit


```
Process p = Runtime.getRuntime().exec("cmd.exe /c start C:\xxyyzz.exe");
```

starten kann weiß ich, aber da das Programm schon läuft wenn ich es beenden will bringt es mir leider gar nichts (oder doch?)

Ich weiß das man das irgendwie über die WinAPI und die PID beenden kann, allerdings weiß ich nicht wie ich den API-Befehl und die PID herausfinden kann.
Außerdem sollte es unter Win32- und Unix-Systemen laufen (gut, man könnte ne abfrage machen ob das System ein W32 oder Unix ist). Die Programm heißen auf beiden gleich, nur ist es in dem einen fall eine *.exe und im anderen fall nicht.


Weiß wirklich nicht weiter, hab schon heute die ganze zeit gegooglt. Ich nehm echt alles an was funktioniert


----------



## thE_29 (1. Sep 2006)

Hat dein Programm in Linux root User rechte (oder su Rechte)?

Wenn nicht, kannste Unix/Linux Weg schon mal vergessen!

WinApi Lösung könnte ich dir geben!


----------



## w00t (1. Sep 2006)

Programm kann volle Rechte erhalten. 
Würde mich über die WinAPI Lösung freuen, nur müsst ich wissen wie ich die anwende, habe bisher noch keine WinAPI Befehle in Java ausgeführt.

mfg. w00t

PS: wird/ist nen GnuLinux Debian


----------



## thE_29 (1. Sep 2006)

Haste du nen C Compiler und kannst du C Compilieren oder soll ich dir ne fertige dll geben?

Unter Linux musst du via ps ax | grep "programm" die PID zurückbekommen und dann via kill -9 <id> als SU User das Programm "killen"


----------



## w00t (1. Sep 2006)

Ne, hab mit c/c++ nix am Hut, also leider keinen compiler zur Hand.
geht das nicht auch ohne *.dll?



> Unter Linux musst du via ps ax | grep "programm" die PID zurückbekommen und dann via kill -9 <id> als SU User das Programm "killen"


Wie genau mach ich das? Versteh nicht genau wie ich das eingeben soll, sry.


----------



## Leroy42 (1. Sep 2006)

w00t hat gesagt.:
			
		

> Ne, hab mit c/c++ nix am Hut, also leider keinen compiler zur Hand.
> geht das nicht auch ohne *.dll?


Nein!


----------



## thE_29 (2. Sep 2006)

Also, am Montag kann ich dir alles geben, da ich daheim zu faul bin...


Jedenfalls geht es ohne dll nicht, da man eine Wrapper Dll zwischen Java und der WinApi braucht, da C++ nix mit java Typen anfangen kann!


----------



## thE_29 (4. Sep 2006)

http://www.java-forum.org/de/viewtopic.php?p=218268#218268


----------

