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 :

message d'erreur avec l'affichage


Sujet :

Langage Java

  1. #1
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut message d'erreur avec l'affichage
    salut mes amis
    j'ai un grave problème et je voulais bien que vous m'aidez pour m'avancer
    j'ai un message java.long.outofMemoryerreur
    exception in thread "main"

    et une petite fenetre java Virtual Machine launcher
    Fatal exception occurred.program will exit.7


    et le driver jdbc
    mysql-connector-jwa-5.0.4


  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    L'erreur que tu obtiens signifie que la JVM ne dispose pas d'assez de mèmoire pour fonctionner correctement.
    Les sources de cette errreur peuvent étre diverses: appel récursif,boucle infinie, chargement d'image volumineuses,...
    Examine donc ton code afin de détecter d'où provient le problème.

    Il faut tout de mème savoir qu'on peut augmenter la mèmoire de la jvm, pour cela cf la FAQ : http://java.developpez.com/faq/java/...tOfMemoryError


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    j'utilise des ArrayList dans mon code et le code marche bien si j'ai une base de donnée avec 1000 enregistrement
    je pense que c'est un problème d'allocation mémoire et dallocation mémoire je ne sais pas comment résoudre le probleme
    mes amis essayez me comprendre

  4. #4
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut outOfMemory
    pour ça tu dois penser à faire évoluer ton code vers une gestion plus détaillée des allocations mémoire. rien de bien méchant mais toutefois ça reste important en terme de matière théorique... c'est la gestion des allocations mémoire connues en Java sous le nom Reference.
    tu peux trouver dans les contribution un Object Cache Manager qui englobe cette théorie brièvement discutée dans un tutoriel de DVP sur les références Java.

  5. #5
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    salut
    mais je n'ai rien compris car c'est de nouveau pour moi

    un tutoriel de DVP sur les références Java.

    please tu peux me donner un lien pour mieux comprendre car je coince encore et je voulais bien trouver la solution

  6. #6
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465

  7. #7
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    just une précision sur le code
    j'ai crée un exemple avec 8 enregistrements qui contient trois colonne clé priméraire et transaction et code avec type VARCHAR

    voila l'exemple

    1 ,1,A
    2,1,C
    3,2,A
    4,2,B
    5,3,C
    6,3,A
    7,4,B
    8,4,E

    j'ai changé le contenu de la troisième colonne par des nombres
    14
    15
    14
    16
    16
    14
    15
    16

    ça marche pas toujours message d'erreur avec le message java.long.outofMemoryerreur
    exception in thread "main"

  8. #8
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    quand tu lances la methode qui leve l exception outofmemoryerror, modifie le code en l entourant avec try{} catch(OutOfMemoryError e){} puis dans le bloc catch tu ajoutes un deuxieme appel a la meme methode. ainsi tu as une meilleure idee de lerreur.
    La solution serait d'utiliser la WeakHashMap donnee dans le package java.lang.ref. Et avec une liste en parallele Hashset, des que l erreur est levee, coupe cette 2e liste HAshset en 2 et lance la methode invoquee une seconde fois.

  9. #9
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    salut merci ami mais je suis encore débutant je t'ai pas bien compris

  10. #10
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    je te renvoie a ma 2e reponse plus haut.

  11. #11
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    je n'ai pas bien compris les références et la gestion de la mémoire
    et comment je doisutiliser pour résoudre mon problème
    c'est pas facile pour moi

  12. #12
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut Cache SQL results to save against memory heap
    pratiquement, je ferais comme suit, donc sans pouvoir corriger le code que tu as présenté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import sf3.SpritesCacheManager;
    import java.lang.ref.ReferenceQueue;
    //import *;
     
    class StoreSQLResult {
         public static void main(String[] args) {
     
             SpritesCacheManager cache = new SpritesCacheManager(100, new ReferenceQueue());
             // le swaping est important pour ne pas perdre les donnees
             cache.setSwapDiskEnabled(true);               
     
             /* le code d execution SQL tel quel en remplaçant ArrawList par SpritesCacheMAnager*/
            Vector columnNames = new Vector();
            Vector data = new Vector();
            Connection conn = null;
            String url = "jdbc:mysql://localhost/test";
            String userName = "root";
            String password = "19821405";
     
            try
            {
              Class.forName("org.gjt.mm.mysql.Driver").newInstance();
              conn = DriverManager.getConnection(url, userName, password);
              System.out.println("Connected");
     
              System.out.println("Veuillez saisir un entier:");
     
              int  K = Keyboard.getInt();
     
              Statement instruction = conn.createStatement();
              String sql = "select DISTINCT code  from allo ";
              ResultSet resultat = instruction.executeQuery(sql);
              int i = 0;
              while(resultat.next()){ // ici je remplace effectivement les ArrayList
                   String t = resultat.getString("transaction");
                   cache.add(i++, new String[] {resultat.getString("code"), t});
              }
             } catch(SQLException e) { e.printStackTrace(); } 
             finally { // puis j'écris sur la sortie out le résultat
                   for(int i = 0; i < cache.size(); i++)
                       System.out.println("* enregistrement n°" + i + " : " + cache.get(i).toString());
             }
     
         }
    }

    Tu remarques donc la présence de la classe SpritesCAcheMAnager très simple à mettre en oeuvre.

  13. #13
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    merci mes amis

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

Discussions similaires

  1. Affichage message d'erreur avec struts 2 et freemarker
    Par Cincinnatus dans le forum Struts 2
    Réponses: 6
    Dernier message: 15/05/2009, 09h29
  2. Affichage des message d'erreurs avec Struts
    Par stujava dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/08/2007, 21h12
  3. message d'erreur avec le Run Time Access 2003
    Par barbu44 dans le forum Runtime
    Réponses: 3
    Dernier message: 10/12/2006, 14h03
  4. message d'erreur avec borland c++
    Par sally042 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 06/12/2006, 15h41
  5. Message d'erreur avec Bulk Insert
    Par Shivas dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/07/2005, 12h03

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