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

avec Java Discussion :

Programme encore en mémoire après Arrêt (?)


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Par défaut Programme encore en mémoire après Arrêt (?)
    Bonjour,

    J'ai réalisé une application Java qui tourne très bien sur Eclipse.
    Pas de soucis.

    Je l'ai extraite en Jar exécutable,
    pas de soucis, je retrouve la même chose qu'avec eclipse,
    avec mes images et tout..... ça marche.

    Problème : Si je tente d'effacer mon Jar,
    et si je l'ai utilisé depuis l'ouverture de ma session Windows,
    Windows m'affiche un refus....
    Le programme semble encore utilisé même une fois arrêté.

    Mes objets sont instanciés par new()
    mais le ramasse-miettes Java (je crois qu'on l'appelle comme ça)
    ne semble pas faire le ménage quand les objets sont délaissés.

    Peut-on forcer le ramasse-miettes à libérer toute la mémoire
    juste après fermeture (avec croix X) du dernier objet affiché ?

    Merci.
    Il est vrai que je peux effacer mon jar simplement en fermant ma session,
    mais cela n'est pas très 'propre'.

    Merci beaucoup
    Gilles

  2. #2
    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,


    Le ramasse-miettes fait proprement son travail : tu n'as pas à le forcer à le faire !!!

    Ici le problème vient de ton code : par défaut la fermeture d'une fenêtre (avec croix X) ne ferme pas le programme mais se contente de cacher la fenêtre...

    Ton programme tourne encore !!!

    Pour fermer proprement la fenêtre tu dois utiliser setDefaultCloseOperation() sur ta frame...

    a++

  3. #3
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    j'ajouterais même : http://java.sun.com/j2se/1.4.2/docs/...eOperation(int)

    Sinon on peut demander au gc de passer avec System.gc(). Mais comme adiGuba le dit très justement, ce n'est pas un problème de gc, mais ton application tourne encore.

  4. #4
    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
    Citation Envoyé par Alain Defrance Voir le message
    Sinon on peut demander au gc de passer avec System.gc().
    Attention car à moins de maitriser complètement les mécanismes du GC, je déconseille cela fortement. Dans la plupart des cas cela ne fera que dégrader les performances en faisant travailler le GC inutilement...

    a++

  5. #5
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Oui d'ailleurs je ne voulais pas la conseille mais seulement signaler son existance. Me suis-je peut-être mal exprimé

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Par défaut
    salut ,

    j'ai pas compris ça :


    Pour fermer proprement la fenêtre tu dois utiliser setDefaultCloseOperation() sur ta frame???


    Merci d'avance?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  2. Mémoire après exécution du programme
    Par Woufeil dans le forum C++
    Réponses: 14
    Dernier message: 23/08/2006, 01h33
  3. Lancer deux programmes d'installation un après l'autre
    Par annedeblois dans le forum Windows
    Réponses: 21
    Dernier message: 01/08/2006, 21h04
  4. Réponses: 10
    Dernier message: 13/02/2006, 08h30
  5. libération de la mémoire après traitement ?
    Par isachat666 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/12/2005, 19h29

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