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

Java Discussion :

Out Of Memory Error!


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut Out Of Memory Error!
    Bonjour,

    J'ai utilisé une librairie télécharger sur le net, permettant de renommer des mp3. Je ne l'ai pas touché, mais créer ma classe pour l'utiliser.

    Lorsque je run mon programme j'obtiens les erreurs suivantes, débutant en java je ne sais pas exactement ou est mon problème...

    Si qqn peut m'éclairer pleaseee!!

    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
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
            at cleanfiles.editmp3.mp3.ID3v2Frame.<init>(ID3v2Frame.java:182)
            at cleanfiles.editmp3.mp3.ID3v2.readFrames(ID3v2.java:766)
            at cleanfiles.editmp3.mp3.ID3v2.init(ID3v2.java:661)
            at cleanfiles.editmp3.mp3.ID3v2.<init>(ID3v2.java:97)
            at cleanfiles.editmp3.mp3.MP3File.init(MP3File.java:2757)
            at cleanfiles.editmp3.mp3.MP3File.<init>(MP3File.java:74)
            at cleanfiles.RetagMp3.changeTag(RetagMp3.java:136)
            at cleanfiles.RetagMp3.retagAlbum(RetagMp3.java:92)
            at cleanfiles.RetagMp3.retagAllAlbums(RetagMp3.java:76)
            at cleanfiles.RenameMp3.jbtRetagMp3MouseClicked(RenameMp3.java:167)
            at cleanfiles.RenameMp3.access$100(RenameMp3.java:19)
            at cleanfiles.RenameMp3$2.mouseClicked(RenameMp3.java:85)
            at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
            at java.awt.Component.processMouseEvent(Component.java:6266)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:6028)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
            at java.awt.Container.dispatchEventImpl(Container.java:2085)
            at java.awt.Window.dispatchEventImpl(Window.java:2475)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    Merci d'avance, et s'il faut poster un ou deux bout de code, voir sa totalité c'est avec plaisir!

    Saket

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Merci de commencer par à consulter la FAQ pour ce genre de problème.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Oups :s

    Sincèrement désolé...

    Merci et à bientot !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut OutOfMemory persiste même avec paramètres -Xmx
    Rebonjour,

    J'ai ajouté le paramètre -Xmx comme suit :

    http://stackoverflow.com/questions/7...-with-netbeans

    Mais l'erreur persiste!

    Revoici les erreurs :
    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
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
            at cleanfiles.editmp3.mp3.ID3v2Frame.<init>(ID3v2Frame.java:182)
            at cleanfiles.editmp3.mp3.ID3v2.readFrames(ID3v2.java:766)
            at cleanfiles.editmp3.mp3.ID3v2.init(ID3v2.java:661)
            at cleanfiles.editmp3.mp3.ID3v2.<init>(ID3v2.java:97)
            at cleanfiles.editmp3.mp3.MP3File.init(MP3File.java:2757)
            at cleanfiles.editmp3.mp3.MP3File.<init>(MP3File.java:74)
            at cleanfiles.RetagMp3.changeTag(RetagMp3.java:144)
            at cleanfiles.RetagMp3.retagAlbum(RetagMp3.java:100)
            at cleanfiles.RetagMp3.retagAllAlbums(RetagMp3.java:84)
            at cleanfiles.RenameMp3.jbtRetagMp3MouseClicked(RenameMp3.java:167)
            at cleanfiles.RenameMp3.access$100(RenameMp3.java:19)
            at cleanfiles.RenameMp3$2.mouseClicked(RenameMp3.java:85)
            at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
            at java.awt.Component.processMouseEvent(Component.java:6266)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:6028)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
            at java.awt.Container.dispatchEventImpl(Container.java:2085)
            at java.awt.Window.dispatchEventImpl(Window.java:2475)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

    En vous remerciant d'avance !

    Saket

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Bonjour,

    a quelle valeur as-tu mis le Xmx? Quelle est la taille de tes fichiers? Au bout de combien de temps as-tu l'erreur? Est-ce que tu n'essaierais pas, par hasard, de charge tous tes albums en mémoire d'un coup?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Ne sachant pas exactement de la valeur des fichiers desquels vous parlez, je mets tout à dispo !

    Xms : 60Mo (max testé)
    Mon projet :1.6Mo
    Totalité des albums que je mets en "mémoire" (charge les noms des mp3 pour tous les albums dans un tableau) : 5-10Go (111 albums , environ 15-20 piste par album).

    Auriez vous besoin de code ?
    D'après mes erreurs pouvez vous me dire quelle ligne pose problème? Que je puisse vous renseigner plus précisément quelle allocation de mémoire pose problème...

    Merci !

    Saket

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le stacktrace fourni l'information sur ou le manque de mémoire se fait sentir, mais ce n'est pas un indicateur sur l'endroit ou la mémoire est sur consommée. A mons avis, dans ton code, tu continue à préserver l'intégralité de tous tes MP3 en mémoire, ce qui conduit inévitablement à un manque de mémoire. Pourrais-t-on voir ta boucle principale (celle qui passe sur tous tes mp3)?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Voici ma boucle principale :

    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
     
    public static boolean changeTag (InfoAlbums infoAlbums, Album album)
        {
            String pathMp3;
            //Contenu du tag
            cleanfiles.editmp3.mp3.TagContent Tag = new cleanfiles.editmp3.mp3.TagContent();
     
            //Pour chaque Track
            for(int i=0 ; i<album.track.length ; i++)
            {
                //Chemin de la track
                pathMp3 = infoAlbums.pathalbums+"\\"+infoAlbums.currentalbum+"\\"+album.track[i].trackName;
     
                try
                {
                    //Nouveau fichier mp3
                    cleanfiles.editmp3.mp3.MP3File MonMp3 = new cleanfiles.editmp3.mp3.MP3File(pathMp3);
     
     
                    //Enregistrement des tags
                    Tag.setContent(album.track[i].title);
                    MonMp3.setTitle(Tag);
     
                    MonMp3.update();
                }
                catch (Exception e){}
            }
     
            return true;
        }

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Est-ce que tu ne dois pas faire un close de ton MP3File après avoir fini de t'en servir, histoire de libérer ses ressource? Comme je ne trouve pas cette librairie, j'en connais pas plus sur son api

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Alors je n'ai aucune méthode close() pour le mp3...
    Mais y a t-il un moyen de libérer l'espace allouer par un "new" ?
    Aimeriez vous que je up un bout de la librairie?!?

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par saket2114 Voir le message
    Alors je n'ai aucune méthode close() pour le mp3...
    Mais y a t-il un moyen de libérer l'espace allouer par un "new" ?
    C'est fait automatiquement par le ramasse miette. Par contre, tu dois t'assurer qu'il ne reste aucune référence aux objets concernés accessibles. Ta méthode que tu nous montre gère manifestement correctement les données, donc si il y a fuite de mémoire, c'est soit autour de ta méthode, soit dans les méthodes de MP3File.
    [/QUOTE]
    Aimeriez vous que je up un bout de la librairie?!?[/QUOTE]
    On pourrais voir la classe RetagMp3 et la classe MP3File? Fais tu bien tous les closes de tes fichiers? Assure toi aussi que tu ne garde aucun référence au contenu de tes fichiers dans une variable statique, par exemple.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Voilà, j'ai mis en pièce jointe les codes...

    Alors je ne fais aucun close de fichier...

    Mon code, créé par moi même, est la class RetagMp3, l'autre est celle télécharger sur le net...

    Mp3File.java n'est, bien entendu, qu'une partie de la librairie télécharger...

    S'il faut la mettre en entier, c'est bien volontier!

    Saket

    Code de RetagMp3:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package cleanfiles;
     
    import java.io.File;
    import java.io.FileFilter;
    /**
     *
     * @author skneissler
     */
     
    //------------------------------------------------------------------------------
    //Filtre pour les fichiers MP3, lors d'un listFiles()
    //------------------------------------------------------------------------------
    class Mp3FileFilter implements FileFilter {
     
      public boolean accept(File pathname) {
     
        if (pathname.getName().toUpperCase().endsWith(".MP3"))
          return true;
        return false;
      }
    }
     
     
    public class RetagMp3 {
     
        //--------------------------------------------------------------------------
        //Types
        //--------------------------------------------------------------------------
        //type d'information sur les albums (genre, Chemin des albums, et type)
        static class InfoAlbums{
            public String genre;
            public String pathalbums;
            public boolean typealbum;
            public String currentalbum;
        }
     
        //type d'information sur un MP3
        static class Track {
            String noTrack;
            String title;
            String trackName;
        }
     
        //type d'information sur l'album (artiste, album, Année...)
        static class Album {
            int year;
            String artist;
            String album;
            Track [] track;
            File picture;
        }
     
        //--------------------------------------------------------------------------
        //Nom : retagAllalbums
        //But : Liste et traite les albums
        //Paramètres:
        //      IN :  genre,type,pathalbums
        //--------------------------------------------------------------------------
        public static boolean retagAllAlbums (String genre, boolean type, String pathAlbums)
        {
            File pathDirAlbums = new File(pathAlbums);
     
            //Informations générale de l'album
            InfoAlbums infoAlbums = new InfoAlbums();
            infoAlbums.genre = genre;
            infoAlbums.pathalbums = pathAlbums;
            infoAlbums.typealbum = type;
     
            //Liste les fichiers de l'album
            File [] albumList = pathDirAlbums.listFiles();
     
            //S'il y a au moin un album
            if ((albumList.length>0) && (albumList!=null))
                //Pour chaque album
                for(int i=0 ; i<albumList.length ; i++)
                {
                    infoAlbums.currentalbum = albumList[i].getName();
                    //Retag l'album
                    retagAlbum(infoAlbums);
                }
     
            return true;
        }
        //--------------------------------------------------------------------------
        //Nom : retagAlbum
        //But : Lit les informations de l'album et le retag
        //Paramètres:
        //      IN :  infoAlbums
        //--------------------------------------------------------------------------
        public static boolean retagAlbum (InfoAlbums infoAlbums)
        {
            Album album = new Album();
     
            album = readInfoAlbum(infoAlbums);
            changeTag(infoAlbums,album);
     
            return true;
        }
     
        //--------------------------------------------------------------------------
        //Nom : readInfoAlbum
        //But : Lit les informations de l'album (Chemin, mp3)
        //Paramètres:
        //      IN :  infoAlbums       //Info des albums
        //      OUT:  album            //Info de l'album
        //--------------------------------------------------------------------------
        public static Album readInfoAlbum (InfoAlbums infoAlbums)
        {
            Album album = new Album();
     
            album = readDirectory(infoAlbums);
            album = readMp3(infoAlbums, album);
     
            return album;
        }
     
        //--------------------------------------------------------------------------
        //Nom : changeTag
        //But : Retag le mp3
        //Paramètres:
        //      IN :  Infoalbums       //Info des albums
        //            album            //Info de l'album
        //--------------------------------------------------------------------------
        public static boolean changeTag (InfoAlbums infoAlbums, Album album)
        {
            String pathMp3;
            //Contenu du tag
            cleanfiles.editmp3.mp3.TagContent Tag = new cleanfiles.editmp3.mp3.TagContent();
     
            //Pour chaque Track
            for(int i=0 ; i<album.track.length ; i++)
            {
                //Chemin de la track
                pathMp3 = infoAlbums.pathalbums+"\\"+infoAlbums.currentalbum+"\\"+album.track[i].trackName;
     
                try
                {
                    //Nouveau fichier mp3
                    cleanfiles.editmp3.mp3.MP3File MonMp3 = new cleanfiles.editmp3.mp3.MP3File(pathMp3);
     
                    //Initialisation des variables 
                    MonMp3.setWriteID3v2(true);
                    Tag.setDescription("Mp3Album");
                    Tag.setType("ID3");
     
                    Tag.setContent(album.track[i].title);
                    MonMp3.setTitle(Tag);
     
                    Tag.setContent(album.artist);
                    MonMp3.setArtist(Tag);
     
                    Tag.setContent(album.album);
                    MonMp3.setAlbum(Tag);
     
                    Tag.setContent(album.track[i].noTrack);
                    MonMp3.setTrack(Tag);
     
                    Tag.setContent(infoAlbums.genre);
                    MonMp3.setGenre(Tag);
     
                    Tag.setContent(String.valueOf(album.year));
                    MonMp3.setYear(Tag);
     
                    //Tag.setContent("");
                    //MonMp3.setComments(Tag);
     
                    //Tag.setContent("C:\\Users\\skneissler\\Desktop\\test\\cover.jpg");
                    //MonMp3.setPicture(Tag);
     
                    MonMp3.update();
                }
                catch (Exception e){}
            }
     
            return true;
        }
     
        //--------------------------------------------------------------------------
        //Nom : readDirectory
        //But : Lit les informations de l'album dans le nom du dossier
        //Paramètres:
        //      IN :  infoAlbums       //Info des albums
        //      OUT:  album            //Info de l'album
        //--------------------------------------------------------------------------
        public static Album readDirectory (InfoAlbums infoAlbums)
        {
            Album album = new Album();
            String [] champs;
     
            //Sépare les différents champs
            champs = infoAlbums.currentalbum.split(" - ");
            //Si c'est un album
            if(infoAlbums.typealbum)
            {
                album.artist = champs[0];
                album.album = champs[1];
                album.year = Integer.parseInt(champs[2]);
            }
            //Si c'est une compil
            else
            {
                album.album = champs[0];
                album.year = Integer.parseInt(champs[1]);
                album.artist = "Va";
            }
     
            return album;
        }
     
        //--------------------------------------------------------------------------
        //Nom : readMp3
        //But : Lit les informations des mp3 dans le dossier
        //Paramètres:
        //      IN :  infoAlbums       //Info des albums
        //            album            //Info de l'album
        //      OUT:  album            //Info de l'album
        //--------------------------------------------------------------------------
        public static Album readMp3 (InfoAlbums infoAlbums, Album album)
        {
            File pathDirMp3 = new File(infoAlbums.pathalbums+"\\"+infoAlbums.currentalbum);
     
            //Liste les fichiers de l'album
            File [] trackList = pathDirMp3.listFiles(new Mp3FileFilter());
     
            //champs
            String [] champs;
     
            //Initialisation du tableau des pistes
            album.track = new Track[trackList.length];
     
            //Pour chaque Mp3
            for(int iTrack=0 ; iTrack<trackList.length ; iTrack++)
            {
                //Sépare les champs des mp3 (noTrack, artiste, album)
                champs = trackList[iTrack].getName().split(" - ");
     
                //Récupère le titre et le No de la piste
                album.track[iTrack] = new Track();
                album.track[iTrack].trackName = trackList[iTrack].getName();
                album.track[iTrack].noTrack = champs[0];
                album.track[iTrack].title = champs[2].replace(".Mp3","");
            }     
            return album;
        }
    }
    Fichiers attachés Fichiers attachés

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par saket2114 Voir le message
    l'autre est celle télécharger sur le net...

    Mp3File.java n'est, bien entendu, qu'une partie de la librairie télécharger...
    Ce serait plus facile avec un lien vers le site en question.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Voici le site ou j'ai trouvé ma librairie :

    http://developer.berlios.de/projects/javamp3/

    J'ai uploadé le ReadMe.txt fournit avec au cas ou !! !!

    Saket
    Fichiers attachés Fichiers attachés

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Essaie de mettre:
    à la fin de ta méthode avant le return true;

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Salut Bolamix ,

    J'ai ajouté ton bout de code comme tu me l'as demandé...
    Je suis en phase de test... Je donne des news quand cela sera ok ou pas ! :p

    Pour informations, et d'après mes tests, je peux chargé environ 220-250Mo de mp3 à la fois (sans le System.gc())... En dessus, ça pète !


    Merci

    Saket

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je ne vois pas d'erreur particulière ni dans ton code, ni dans la librairie. A quelle valeur as-tu monté le paramètre -Xmx? Peux tu nous donner la ligne de commande que tu as utilisée?

    @Bolamix: cette commande ne sert à rien ici et doit d'ailleurs être évitée en général.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Hé bien rapide dis donc!

    Je ne l'exécute pas en ligne de commande...
    Je l'exécute depuis NetBeans.
    J'ai donc défini le paramètre dans les préférences du projet, comme suit :
    http://stackoverflow.com/questions/7...-with-netbeans

    (Valeur : 60M)

    Mais avec le System.gc(), je crois que cela va légèrement mieux...

    Je suis en phase de test et d'amélioration d'un tableau.
    Lorsque j'aurai terminé d'ici demain midi, je repost mon avancement pour voir si tout est ok...¨

    Saket

  19. #19
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par saket2114 Voir le message

    Mais avec le System.gc(), je crois que cela va légèrement mieux...
    Le garbage collector fait toujours un full GC avant de déclencher un outofmemory, c'est pour ca que l'appel à System.gc() ne sert à rien.
    De plus mettre le Xmx à 60M ne sert rien non plus, la jvm ayant par défaut, au minimim, 64M. Si tu veux agrandir la mémoire de ta JVM met une valeur comme 256M ou 512M.

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    Oyé, oyé messieurs, dames,

    Alors le problème persiste

    Et lorsque je mets un Xmx à 256m voici l'erreur qu'il me donne lorsque je compile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    run:
    Error occurred during initialization of VM
    Incompatible minimum and maximum heap sizes specified
    Java Result: 1
    GÉNÉRATION TERMINÉE (durée totale* 0 secondes)
    HELP !

    Saket

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Out of memory error apres lancement d'applets successives
    Par cedricced dans le forum Applets
    Réponses: 2
    Dernier message: 31/01/2008, 14h12
  2. Out of Memory error
    Par lanfeustdetroll dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/07/2007, 09h46
  3. out of memory error
    Par gloglo dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 03/02/2007, 02h44
  4. BIRT 2.0 Out of memory error avec les graphiques
    Par tiboudchou dans le forum BIRT
    Réponses: 17
    Dernier message: 11/08/2006, 15h04
  5. [Debug]JUnit out of memory error
    Par chezalfredo dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/01/2006, 14h58

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