Jusqu'à présent, j'ai utilisé mon application en tant que produit autonome. Donc, lorsque l'utilisateur a appuyé sur le bouton "Stop" j'ai appelé System.exit(0);
et c'était bien.Comment puis-je fermer mon logiciel en toute sécurité?
Maintenant, mon application sera appelée (d'une manière programmatique) à partir d'un autre programme. Donc, j'ai peur que System.exit(0);
ne tue non seulement mon processus mais aussi le logiciel externe qui a démarré mon programme. Alors, quelle est la bonne façon d'arrêter mon application si une demande correspondante d'un logiciel externe est reçue? Mon application est une application graphique. Donc, je veux fermer la fenêtre mais je veux aussi fermer tous les processus effectués par mon programme.
AJOUTÉE:
Pour être plus précis, je veux fermer toutes les discussions ouvertes par mon programme. Mon programme ne démarre aucun processus de système d'exploitation ou tout autre programme.
@Roman: par * "processus exécutés par mon programme" * voulez-vous dire tous les threads que votre programme Java exécute ou votre programme a engendré, disons, d'autres exécutables (processus shell Un * x, .exe, autres Programme Java en cours d'exécution dans leur machine virtuelle, quel que soit)? – SyntaxT3rr0r
@WizardOfOdds, je veux dire "tous les threads mon programme Java est en cours d'exécution". – Roman
Comment votre programme est-il appelé? Est-ce qu'une certaine méthode est appelée par un programme Java déjà en cours d'exécution, si bien que les deux deviennent un programme? Ou l'autre programme lance-t-il un appel système pour démarrer une nouvelle machine virtuelle Java avec votre programme? –