per java progs beenden

crazymischl

Erfahrenes Mitglied
Hi alle zusammen,
wie schon im titel steht:ich möchte mit java programme beenden (geht das überhaupt=).
Hintergrund: ich möchte einen kleines startprogramm programieren,mit dem ich bequem programme starten/beenen kann und ich habe einfach ein paar programme die sich regelmäßig aufhängen, die ich dann damit gerne schließen (also einfach den prozess/task wie im taskmanager killen) möchte.
also mit batch geht das ja ganz einfach: taskkill /f /im programm.exe
das starten der programme geht ja auch noch:
public class test {
public static void main (String args[]){
try {
Runtime.getRuntime().exec("notepad");
} catch (Exception e) {}
}
}
nur wie kann ich ein programm beenden
wäre dankbar für eure hilfe, kenn mich noch nich so aus in java. :rolleyes:
Achja ich benutze winxp prof sp2 und Eclipse 3.3.0
PS: wenn es nicht gehen sollte, mit welcher programiersprache würdet ihr so ein kleines startprogramm machen? zuerst wollte ich es mit c++ oder c#, aber ich hab schnell gemerkt dass ich da nich durchblicke, java haben wir schon in der schule gehabt deshalb hab ich gedacht ich versuchs mal mit java :)

Also schon mal danke für eure Antworten :):)
MFG,Michi.
 
hi,

in diesem falle würde ich vb verwenden, damit kannst du die windows api verwenden. diese erlaubt dir einen tieferen einblick und mehr konntrolle über die tasks als du mit java bekommen kannst. wenn du dein programm auch unter linux nutzen möchtest müsstest du wie oben erläutert vor gehen...

@see activevb.de
@see vbarchive.de

hmf
 
Ich hab's noch nie ausprobiert, aber die exec-Methode hat doch einen Rückgabewert, einen Process. Und wenn die Programme mit Java gestartet wurden, hat man ja eine Referenz darauf (wenn man sich die merkt). Würde da nicht schon die destroy()-Methode weiterhelfen? Oder funktioniert die nicht?
 
hi,

die vm stellt meines wissens keine funktion dafür bereit...müsstest also auf os-funktionen zurück greifen und an die kommst du unter windows am besten mit vb ran

hmf
 
Also jetzt hab ich es mal ausprobiert. Funktioniert tadellos :) Öffnet ein Internet-Explorer-Fenster und ein Notepad und schließt beides nach 5 Sekunden wieder. Also wie gesagt, wenn die Programme mit Java gestartet wurden klappt's, wenn nicht, muss man auf die anderen Lösungen umsteigen, die hier vorgeschlagen wurden.

Folgender Code funktioniert (unter WinXP Pro):
Java:
import java.io.IOException;

public class Test {

	public static void main (String [] args) {
		try {
			Process p = Runtime.getRuntime().exec("\"C:\\Programme\\Internet Explorer\\IEXPLORE.EXE\"");
			Process p2 = Runtime.getRuntime().exec("notepad");
			Thread.sleep(5000);
			p.destroy();
			p2.destroy();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
 
Hi an alle,
also erstma vielen dank für eure schnellen antworten :)!
Ich habs jetzt mit ein bisschen probieren rausgekriegt:

public class test2 {
public static void main (String [] args) {
try {
Process p1 = Runtime.getRuntime().exec("notepad");
Thread.sleep(5000);
Process p2 = Runtime.getRuntime().exec("taskkill /f /im notepad.exe");
} catch (Exception e) {}
}
}
Vielen dank nochma denn durch eure ideen bin ich draufgekommen:
Code:
Runtime.getRuntime().exec("kill notepad");
und
Java:
Process p2 = Runtime.getRuntime().exec("notepad");
ich hab das einfach mit meinem batch-befehl zusammengemixt und so siehst dann aus falls es noch jemand braucht:
Java:
Process p2 = Runtime.getRuntime().exec("taskkill /f /im notepad.exe");
Das läuft jetzt wunderbar und beendet auch programme, die mann nicht mit java gestartet hat :) :)
@_jsd_ danke für deinen vorschlag für vb, ich probier ma ob es mit java klappt wie ichs will (vb kenn ich mich noch nich aus :rolleyes: ) aber trotzdem thx :)
Mfg, Michi!
 
Zurück