IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

kill process javaw.exe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut kill process javaw.exe
    Bonjour,

    je developpe un logiciel qui tourne a la fois sur windows et sur mac.
    pour la version windows, l'installeur de mon appli copie un JRE dans le repertoire de mon appli. Oui y a peur de chance que les utilisateurs de ce logiciel est java d'installer, et je veux aussi pouvoir maitriser la version.

    Ma première question, quand je lance mon logiciel, le .exe execute la ligne de code suivante
    tout marche nickel, l'appli fonctionne bien (quoiqu'un peu plus lente sur pc )

    le problème est que, sur ma fenetre principale, je capte l'evenement WindowListener et sur la méthode WindowClosed, j'appelle
    l'application se ferme, si on regarde dans le gestionnaire des taches, dans l'onglet application, il n'y a plus mon logiciel, par contre si on regarde dans les processus...bah y a toujours javaw.exe, et lui, il m'embete et il reste autant de fois que je lance le logiciel

    qq1 sait a quoi cela pourrait etre du ?

    2eme question :
    Existe-il un package, zip etc que je pourrais fournir avec mon application qu'il suffirait de dézipper et qui contiendrait le minimum pour lancer une appli java. Parce que, comme expliquer au dessus, je livre avec mon appli un repertoire "jre", mais c'est un repertoire que j'ai copié / coller un peu comme un bourrin et que mon installeur se charge de copier la ou je lui demande. y a surement plein de truc inutile dedans, parce qu'au final, ce repertoire fait quand meme qq 20 Mo.

    voila.

    z'etes bien aimable
    en vous r'merciant,
    a vot' bon coeur


  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Normal : l'onglet application ne montre que les logiciels avec fenêtres actives. Or tu n'en as pas.

    Je ne suis pas sur et certain, mais tu devrait plutôt mettre ton System.exit(0); dans la méthode windowClosing() et non windowClosed().

  3. #3
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    c'est un peu bizarre

    en gros ca implique quoi, qu'il ne passe pas dans le WindowClosed

    ah j'avais une autre question aussi, mais pour mac cette fois
    quand on travaille, par exemple sur eclipse, et qu'on a des fichiers non sauvegardés, on fait Pomme+Q (quitter) il nous demande si on veut sauvegarder, donc je me dis y a moyen de choper un evenement pour savoir quand on fait pomme Q

    mais j'ai essayé de mettre un System.out.println dans WindowClosing et WindowClosed...avec le pomme Q, aucun des 2 ne s'affiche. je parle toujours de mon logiciel la, pas d'eclipse (au cas ou )

    donc voila si qq1 a encore une idée sur cet autre problème

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu n'utilises pas la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    sur ta JFrame ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Tu es certain d'avoir ceci dans ta JFrame ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    this.addWindowListener(new WindowAdapter() {
    	public void windowClosing(WindowEvent e) {
    		System.out.println("La frame se ferme");
    	}
    });
    sinon, pour répondre à ta question de comment qu'on fait quoi, il suffit d'ajouter un windowListener (comme ci-dessus) et dans celui-ci, de faire apparaître un message de demande de sauvegarde, en cas de confirmation, faire les sauvegardes adéquates, puis fermer.

    C'est pas vraiment compliqué, mais si tu as davantages de questions sur Swing, pose-les dans la partie AWT/Swing du forum

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    L'évènement "windows closed" n'est appelé qu'une fois que la fenêtre est bel et bien fermé... or ce n'est pas le cas chez toi...

    En effet par défaut les JFrame ne sont pas fermé mais simplement caché (et donc le programme tourne toujours).
    Pour changer ce comportement il faut utiliser la méthode setDefaultCloseOperation()


    Et si tu veux gérer cela plus finement il faut utiliser l'évènement "windows closing", qui est appelé avant toutes tentatives de "fermeture" quelque soit le "DefaultCloseOperation". Ainsi tu peux te servir de cet évènement pour rajouter une confirmation de fermeture, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	public void windowClosing(WindowEvent e) {
    		JFrame frame = (JFrame) e.getWindow();
    		int confirm = JOptionPane.showConfirmDialog(frame,
    				"Êtes-vous sûr de vouloir quitter ?");
    		if (confirm==JOptionPane.OK_OPTION) {
    			// Si OK on ferme la fenêtre et on quitte :
    			frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    		} else {
    			// Sinon on ne fait rien du tout :
    			frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    		}
    	}



    En ce qui concerne le JRE je n'en ai aucune idée...



    a++

  7. #7
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    ca doit venir de ca..le setClose machin... merci mon ptit adiGuba


    pour repondre a dingoth...
    merci je sais encore ajouter un evenement, meme que je passe pas par WindowAdapter mais WindowListener, meme si je gère que 2 des 5 méthodes, donc pour le swing et tout le reste pas de soucis...la il s'agissait juste d'un oubli en fait...

    merci de vous etes penché dessus...

    par contre ca ne repond pas a l'histoire du pomme Q...
    j'ai l'impression que ce dernier kill le process...comme on pourrait le faire sous windows dans le gestionnaire de tache...sauf que la ca passe pas dans le WindowClosed, ni Closing....et forcément c'est agassant pour mes utilisateurs mac...

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Non, pour avoir un mac un peu capricieux à la maison, le processus n'est pas killé avec <Pomme> Q. Pour en être certain, tente d'ajouter un hook au shutdown de l'application. C'est très peu recommandé, mais dans ton cas, ça serait plutôt pour vérifier ce qui se passe et pouvoir agir en conséquence. Supprimer ce hook une fois le problème trouvé serait une excellente chose

Discussions similaires

  1. Kill process iexplore.exe
    Par mehat dans le forum Débuter
    Réponses: 2
    Dernier message: 15/04/2011, 12h42
  2. Kill Process TSE
    Par eguillot dans le forum Delphi
    Réponses: 1
    Dernier message: 22/06/2006, 17h11
  3. Killer le Process explorer.exe
    Par ni0urk dans le forum MFC
    Réponses: 1
    Dernier message: 08/02/2006, 11h44
  4. [Run]Exécution de java.exe au lieu de javaw.exe par Eclipse
    Par newfsch dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 24/11/2005, 12h53
  5. [net*8] Kill process Oracle
    Par Filippo dans le forum Oracle
    Réponses: 2
    Dernier message: 18/11/2005, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo