salut tous le monde
lors de chargement d'une image de grande taille ,j'obtient cette exception que je mattendait toujour 8-)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
exist'il une heuristiques ?
Version imprimable
salut tous le monde
lors de chargement d'une image de grande taille ,j'obtient cette exception que je mattendait toujour 8-)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
exist'il une heuristiques ?
Ton message ne veut rien dire :roll:
Ca va pas être facile de t'aider ;)
je veut afficher une image , apartir d'un fichier ,
les BufferedImage occupe un espace important en mémoire,c'est pourquoi j'obtient cette expception Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spaceCode:
1
2 BufferedImage image = ImageIO.read(new File("path");
si l'image est de grande taille .
je cherche s'il ya une méthode qui me permet par exemple d'agrandir l'espace mémoire réservé à mon programme ou aux objets BufferedImage
Bah suffit de fouiller dans la doc de la JVM pour ça.
http://java.sun.com/javase/technolog.../vmoptions.jsp
tu peux également essayer d'utiliser les PlanarImage du JAI (Java Advanced Imaging) qui ne chargent pas intégralement les images en mémoire. par contre cela risque de t'obliger à revoir certaines portions de ton code.
Pour augmenter la taille de l'espace mémoire que tu autorises à ton application, tu peux utiliser les paramètres suivants dans le launcher :
-Xms : taille minimum de mémoire affectée par l'application dès le lancement
-Xmx : taille maximum (quand cette taille maxi est atteinte, il y a le java heap space
Exemple : -Xms64m -Xmx1500m
=> 64 mo affectés à l'appli dès le lancement
=> 1,5 go maxi utilisable par l'appli
essaie de voir la consommation mémoire de ton appli en regardant son process et ajuste ensuite tes paramètres
c'était une mauvaise conception de ma part pour l'application et j'aurais du travaillé des le début avec l'API JAI pour plusieurs autres raisons...
pour mon idée d'augmentation de la taille mémoire réservé, c'est déjà résolut mais puisque ce sujet est réouvert après avoir oublié de le qualifier résolu ,je me pose la question de comment procéder pour le cas d'une Applet ou une application graphique qui sera déployé chez un client qui exécute l'application avec javaw ?
Tu met les JAR, DLL et LIB du JAI sur le site et tu les referrences dans les ressources de l'applet et les ressources du JNLP. Par contre vu qu'il y a des libs natives il faudra peut-être signer ton applet non ?
peut être j''ai pas bien poser la question mais ce que j'ai voulu savoir c'était pas comment deployé une applet.
le problème du début etait comment augmenter la taille en mémoire de la JVM, et chez moi, j'exécute mon jar avec cette commandeet donc je me demande qu'un client qui ne sait faire qu'un double clique , il va rencontré un problème s'il ouvre une image de grande taille avec une JVM configuré chez lui à un espace mémoire maximale très réduit !!??Code:java -Xmx1500m monApplication.jar
C'est vraiment trop comme taille max. Au pire un 512M, mais avec un 1500M tu peux mettre à genoux la bécane de l'utilisateur. Juste comme ça des monstres comme eclipse ou Websphere Application Server tournent juste avec 1024M (voir 512M). Et ce sont vraiment des gloutons de première, pas une simple applet permettant d'afficher des images.