-
Hi,
ich will noch einige Dinge erledigen wenn das Programm geschlossen wird.
Ich stell mir das ungfär so vor:
Code java:1 2 3 4
if( "Programm.isClosed()" ) { mach das und das... }
Gibt es da irgendein Methode?
-
Hi
welche Programmart (Konsole, Applet, ...)?
Wie wird geschlossen?Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Sorry hab ich vergessen zu sagen.
Es geht um ein Konsolen-Programm.
-
So was?
Code java:
http://docs.oracle.com/javase/1.4.2/...lang.Thread%29
-
Und wie wird geschlossen?

Vom Programm ausgehend
oder per Klick auf das X oben rechts
oder bei Taskmanager etc.
...?
CPoly, du bist schnell...
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
-
1.Ich will die Konsole mit X schließen.
2.Shutdownhook wird doch ausgelöst wenn das Betriebssystem runterfährt nicht wenn ich das Progamm schliesse.
-
Ich habe doch den Link zur Doku gepostet, also gibt es doch eigentlich nichts zu spekulieren?
The Java virtual machine shuts down in response to two kinds of events:
The program exits normally, when the last non-daemon thread exits or when the exit (equivalently, System.exit) method is invoked, or
The virtual machine is terminated in response to a user interrupt, such as typing ^C, or a system-wide event, such as user logoff or system shutdown.
Und nochmal in fett The program exits normally.
-
Danke XD
Ich hate es anders in Erinnerung. SRY
-
Ist ja nicht schlimm. Der Vollständigkeit halber hier der Beweis (das hat man in wenigen Sekunden erstellt
)
Code java:
Egal, ob ich strg+c benutz oder das Konsolen Fenster schließe, es kommt die Ausgabe. Auch wenn ich von einer anderen Konsole aus das kill Signal sende, kommt auf der anderen Konsole die Ausgabe
-
Funktioniert leider nicht.
Ich hab alles gemacht wie beschrieben.(auch mithilfe von einem Buch muss also stimmen)
Noch andere Ideen?
edit:
Hat sich erledigt.
Mit strg+c funktionierts, das reicht fürs erste.Geändert von sheel (26.11.11 um 21:50 Uhr) Grund: Doppel
-
26.11.11 23:54 #12
- Registriert seit
- Jun 2009
- Beiträge
- 870
ShutdownHooks werden eventuell nicht ausgeführt, wenn du das Konsolen-Fenster mit 'X' schließt.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Mit Strg+c macht er auch nicht unbedingt alles.
-
27.11.11 14:39 #14
- Registriert seit
- Jun 2009
- Beiträge
- 870
Richtig. Weil bei beiden das Programm „hart“ beendet wird.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
01.12.11 22:55 #15
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
ein normaler ShutdownHook reicht dafür (wie zuvor bereits erwähnt wurde) nicht aus...
Um diese Funktionalität zu realisieren müsste man entweder mit einem Launcher Wrapper arbeiten oder neben dem Anwendungsprozess einen "Watchdog"-Prozess zur Überwachung des Anwendungsprozesses starten.
Letzteres sei hier mal kurz illustriert:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
package de.tutorials.training; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import javax.swing.JOptionPane; public class WatchedAppExample { public final static int trackerPort = 9999; public static void main(String[] args) throws Exception { new WatchedAppExample().run(); } private void run() throws Exception { startTrackerServer(); TimeUnit.SECONDS.sleep(1); startTrackerClient(); appLogic(); } private void appLogic() throws InterruptedException { while (true) { System.out.println("working ..."); TimeUnit.SECONDS.sleep(1); } } private void startTrackerServer() { Executors.newSingleThreadExecutor().execute(newTrackerServer()); } private Runnable newTrackerServer() { return new Runnable() { @Override public void run() { try { ServerSocket ss = new ServerSocket(trackerPort); Socket s = ss.accept(); OutputStream out = s.getOutputStream(); while (true) { out.write(1); out.flush(); TimeUnit.SECONDS.sleep(1); } } catch (Exception e) { e.printStackTrace(); } } }; } private void startTrackerClient() throws Exception { new ProcessBuilder("cmd", "/c", "start", "javaw", "-cp", new File( getClass().getProtectionDomain().getCodeSource().getLocation() .toURI()).getAbsolutePath(), TrackerClient.class.getName()).start(); } public static class TrackerClient { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", trackerPort); InputStream in = socket.getInputStream(); try { while (true) { int b = -1; while ((b = in.read()) != -1) { } } } catch (IOException e) { // e.printStackTrace(); app killed } JOptionPane.showMessageDialog(null, "The app was killed!"); } } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Aus einer Methode heraus einen Click auf einen Button ausführen ausführen
Von NSR im Forum .NET CaféAntworten: 4Letzter Beitrag: 28.01.09, 11:05 -
Befehl auf Konsole ausführen
Von killerbees19 im Forum JavaAntworten: 10Letzter Beitrag: 18.07.07, 16:10 -
PHP in der Konsole ausführen?
Von Kopfballstar im Forum PHPAntworten: 9Letzter Beitrag: 08.06.07, 15:10 -
Fenster schliessen .. Funktion ausführen
Von Nabi im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 01.06.07, 07:40 -
Befehl ausführen, direkt vor dem schliessen des Fensters
Von Ferum im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 10.04.07, 10:14



4Danke

Zitieren




Login





