begin process at 2012 02 15 14:48:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Divers

 > 

java.lang.OutOfMemoryError


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

java.lang.OutOfMemoryError

dimanche 26 février 2006 à 11:46:24 | java.lang.OutOfMemoryError

ObiWanKennedy

Bonjour, je travaille sur une application de gestion de playliste winamp donc voici ma fonction qui crée un fichier html avec divers renseignement.

public void creehtml(boolean allormissed)//true on affiche tous les fichier de la playliste et false on affiche que les fichiers manquants
 {
  boolean mp3;
  if(allormissed)//on affiche tout.
  {
   try{
    BufferedWriter fW= new BufferedWriter(new FileWriter("PlaylisteAll.html",true));
   
    fW.write("<center>Voici une exportation de votre playList en Html</center>"+"\r\n");
    fW.write("<br><br>");
    fW.write("<table><tr><td>nom du fichier</td><td>chemin</td><td>Groupe</td><td>Titre</td><td>Statut</td></tr>");
    String artistetemp=null,titretemp=null;
     for(int i=0;i<file.size();i++)
     {
      mp3=false;
          
      
      try
      {
      if((Vfichier.elementAt(i).toString().contains(".mp3"))&&(Existe.elementAt(i).toString().equals("oui")))
       {
        try//création d'un objet MP3File tampon je recupère les info que je désire et je passe mon temp à null et je vide "les dechets"
        {
         MP3File temp = new MP3File(Vfichier.elementAt(i).toString());
         mp3=true;
         artistetemp = temp.getArtist().getTextContent();
         titretemp = temp.getTitle().getTextContent();
         temp=null;
         Runtime.getRuntime().gc();

        }
        catch(Exception e)
        {
         System.out.println(e.toString());
        }
       
       }
      //j'affiche divers information comme le chemin et le nom du fichier son
       fW.write("<tr><td>");
       fW.write(file.elementAt(i).toString());
       fW.write("</td><td>");
       int longueur = Vfichier.elementAt(i).toString().length()-file.elementAt(i).toString().length();
       String temp2 = Vfichier.elementAt(i).toString().substring(0,longueur);
       fW.write(temp2);
       fW.write("</td><td>");
       if(mp3)//si c'est un mp3 alors j'ecris les information issue du ID3v2  dans ma pages html
       {
        
        
        
        if(artistetemp!=null)
         fW.write(artistetemp);//nom de l'artiste
        else
         fW.write("&nbsp");
         
        fW.write("</td><td>");
        
        
        if(artistetemp!=null)
         fW.write(titretemp);
       else
         fW.write("&nbsp");
 
       }
       else //si c'est pas des mp3 j'ecris des espaces
       {
        fW.write("&nbsp");
        fW.write("</td><td>");
        fW.write("&nbsp");

       }
       artistetemp=null;//je passe mes chaines de caractrères a null.
       titretemp=null;
       
       
       fW.write("</td><td>");
       if(Existe.elementAt(i).toString().equals("oui"))
       {
         fW.write("Présent"+"\r\n");      
       }
       else
       {
         fW.write("Indisponible"+"\r\n"); 
       }
      }
      catch(Exception e)
      {
       //System.out.println(ligne+" 1");
       System.out.println(e.toString());
       System.gc();//si une exception est reçu ici on vide les dechets.
      }
     }
     fW.close();
    }
    catch(IOException e)
    {
       //System.out.println(ligne+" 1");
     System.out.println(e.toString());
    }
    
   
  }
  else//cette partie fonctionne tres bien.
  {
   try{
   
   BufferedWriter fW= new BufferedWriter(new FileWriter("PlaylisteIndispo.html",true));
   fW.write("<center>Voici liste des fichiers qui n'existe plus sur votre disque</center>"+"\r\n");
   fW.write("<br><br>");
   fW.write("<br><br>");
   fW.write("<table><tr><td>nom du fichier</td><td>chemin</td></tr>");
    for(int i=0;i<file.size();i++)
     {
          
      
       
       if(Existe.elementAt(i).toString().equals("oui"))
       {
              
       }
       else
       {
         System.out.println(file.elementAt(i).toString());
          fW.write("<tr><td>");
          fW.write(file.elementAt(i).toString());
          fW.write("</td><td>");
          int longueur = Vfichier.elementAt(i).toString().length()-file.elementAt(i).toString().length();
          String temp2 = Vfichier.elementAt(i).toString().substring(0,longueur);
          fW.write(temp2);
          fW.write("</td></tr>"); 
       }
      }
     fW.close();
    }
   catch(Exception e)
    {
      
     System.out.println(e.toString());
    }
   
   
  }
  
 }

j'ai utilisée une librairy: [ Lien ] pour les classes MP3File  et j'ai écris à l'auteur mais l'email n'est pas arrivé.
j'ai lu sur divers forum que cette erreur était un dépassement de la capacité mémoire de la JVM. J'ai vu diverses solutions comme l'option -Xmx250m pour augmenter l'espace mémoire de la JVM cela ne fonctionne pas et le garbage collector ne m'aide pas plus.

pour info: ma playliste contient 14 110 fichier de musique et celà plante vers le 1 300ème.

voila merci.

dimanche 26 février 2006 à 12:17:12 | Re : java.lang.OutOfMemoryError

sheorogath

Membre Club Administrateur CodeS-SourceS
tu n'aurais pas la ligne ou se declenche le probleme par hasard ?
dimanche 26 février 2006 à 12:50:22 | Re : java.lang.OutOfMemoryError

gmi19oj19

Membre Club
J'ai aps lu le code dans le détail, mais si tu stockes tous tes fichiers MP3 via des objets, c'est pas étonnant que ça plante^^

gmi19oj19
dimanche 26 février 2006 à 13:12:32 | Re : java.lang.OutOfMemoryError

ObiWanKennedy

non mais quand je mets ces lignes en commentaires:

 MP3File temp = new MP3File(Vfichier.elementAt(i).toString());
         mp3=true;
         artistetemp = temp.getArtist().getTextContent();
         titretemp = temp.getTitle().getTextContent();
         temp=null;



cela marche bien mais je n'ai pas toutes les infos que je désire.
a oui, l'erreur exacte est java.lang.OutOfMemoryError : java heap space.

il serait logique que ce soit cette ligne.
MP3File temp = new MP3File(Vfichier.elementAt(i).toString());
la nouvelle allocation ne peut pas ce faire car il y a plus de mémpoire disponible.
dimanche 26 février 2006 à 13:32:32 | Re : java.lang.OutOfMemoryError

ObiWanKennedy

Ben non justement je stocke pas tous les mp3 dans des objets enfin du moins je ne veux pas faire ça mais c'est se qui a l'air de faire. Normalement je crée un objet je prends ce qui m'interesse et je le détruit mais la destruction ne se fait pas on dirait.
Normalement, je ne dois avoir qu'un seul objet MP3File en mémoire au maximun.
mais apparament je dirais qu'il y a une memory lack c-a-d que il me crée un objet et au lieu de le détruire et de recréer un objet au même endroit ben il en crée un autre. Mais je comprends pas pourquoi il fait.
voila.

merci
dimanche 26 février 2006 à 16:09:18 | Re : java.lang.OutOfMemoryError

sheorogath

Membre Club Administrateur CodeS-SourceS
au lien de fait System.out.println(e.toString()); essaie de faire e.printStackTrace et on sauras ou se produit ou plutot quand ce produit l'exception sinon moi je m'etais fait un petit prog qui me lister tout mes mp3 (2000) il ne planté pas je stocker des objets file dans un vector tout se passe tres bien
dimanche 26 février 2006 à 17:51:32 | Re : java.lang.OutOfMemoryError

sheorogath

Membre Club Administrateur CodeS-SourceS
joubliais apres j'ecrivais le vector dans un fichier textes je pense qu'il ny a pas grand chose a modifer pour en faire un html si tu veut le code je te le passerai par mail
dimanche 26 février 2006 à 18:25:01 | Re : java.lang.OutOfMemoryError

ObiWanKennedy

j'ai fait 
 catch(OutOfMemoryError e)
 {
         e.printStackTrace();
 }
et en faite l'application continue je ne comprends pas mais sa n'affiche pas la date.
donc maintenant j'ai bien ma liste avec tout mes mp3 mais l'erreur revient plusieur fois durant l'execution.

dimanche 26 février 2006 à 19:06:53 | Re : java.lang.OutOfMemoryError

sheorogath

Membre Club Administrateur CodeS-SourceS
un peu bizarre je me renseigne un peu sur le package et tout a la limite j'essai ton code et essai de le corriger mais je ne garantie rien !! mais dasn le tableau que tu liste pour les mp3 il n'y a que des fichier mp3 ? ou il y a d'autre type de fichier ?
dimanche 26 février 2006 à 20:10:24 | Re : java.lang.OutOfMemoryError

sheorogath

Membre Club Administrateur CodeS-SourceS
je veins de faire un code ou plutot modifier un code que j'avais fait permettant de lister les mp3 de mon pc ensuite d'apres un Vector il recupere tous les mp3 lister en fait des MP3File et ecrit dans un fichier texte qq info j'avou que j'ai une frame exception que j'essai de resoudre

1 2

Cette discussion est classée dans : system, write, tostring, fw, elementat


Répondre à ce message

Sujets en rapport avec ce message

écrire dans un fichier [ par hatem_benjemaa ] Bonjour, j'utilise le bean suivant pour écrire dans un fichier. package bfc; import java.io.*; public class writeFile { public void writeS Exception java.lang erreur [ par orchideor ] Bonjour tout le monde , J'ai une exception java.lang.arrayIndexOutOfBoundsException lors de l'execution de mon programme. J'ai essayer de modifier l Afficher une chart d'une servlet dans une page JSP [ par orchideor ] Salut tout le monde , Je voudrais pouvoir afficher les charts que je génère de ma servlet directement dans la page jsp ,sans devoir les stocker dans connexion à oracle via java [ par sana83 ] Bonjour, je veux connecter à une base oracle, bon la connexion est réussi (test de connexion succesfull) mais le problème au niveau de code java. voic Ecriture dans un fichier [ par popodounet ] Bonjour à tous, Voila j'essaye à l'"aide de cette méthode d'écrire dans un fichier mais lorsque je store une deuxième ligne elle ne s'affiche pas p Ajout de semaine avec Calendar, year, week_of_year / Etrange ... [ par motylefr ] Bonjour J'ai besoin d'ajouter ou de soustraire des semaines sur une date au format année-semaine, par exemple 2010-46 +1 = 2010-47. Mais chose étrang [J2SSH] Channel'In/Out'putStream problème [ par Cyrodiil ] Bonjour, Actuellement je développe un outil en JAVA, qui va me permettre d'envoyer via SSH des commandes Telnet à partir d'un poste distant. J'utili Client-Serveur [ par SpaceHam ] Bonjour, J'essaie de créer un client-serveur simple. Beaucoup d'exemple ont été sortie pour une applicationd de chat multiple. Je me suis bassé la de [PROBLEME] Envoi fichier .txt serveur -> client [ par robx2309 ] Bonsoir tout le monde, Voilà j'ai un problème avec mon programme : Je veux envoyer un fichier .txt d'une machine serveur (OutputStreamWriter) à une m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,493 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales