para jdk descargar java netbeans netbeans6.5 java-6

java - jdk - netbeans para debian



¿Cómo puedo evitar errores de espacio PermGen en Netbeans? (5)

Cada 15-30 minutos, Netbeans muestra un " java.lang.OutOfMemoryError: PermGen space ". Por lo que aprendí de Google, esto parece estar relacionado con fugas del cargador de clases o pérdidas de memoria en general.

Desafortunadamente, todas las sugerencias que encontré estaban relacionadas con los servidores de aplicaciones y no tengo idea de adaptarlas a Netbeans. (Ni siquiera estoy seguro de que sea el mismo problema)

¿Es un problema en mi aplicación? ¿Cómo puedo encontrar la fuente?


Es debido a la constante carga de clases.

Java almacena el código de byte de clase y todas las constantes (por ejemplo, constantes de cadena) en un montón permanente que no es basura recopilada de forma predeterminada (que tiene sentido en la mayoría de las situaciones porque las clases se cargan solo una vez durante la vida de una aplicación).

En aplicaciones que a menudo cargan clases durante toda una vida que son:

  • servidores web y de aplicaciones durante el redespliegue en caliente;
  • IDE cuando ejecuta aplicaciones desarrolladas (cada vez que presiona el botón Ejecutar en Netbeans o eclipse, carga las clases de su aplicación como nuevas);
  • etc. este comportamiento es incorrecto porque un montón se llena por completo con el tiempo.

Debe activar la recolección permanente de basura de montón para evitar este error.

Yo uso opciones

-XX:MaxPermSize=256M -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

(detuvo mi eclipse 3.4 de lanzar " java.lang.OutOfMemoryError: PermGen space " así que también debería funcionar con netbeans).

Editar : Solo tenga en cuenta que para Netbeans usted establece esas opciones en: [Netbeans installation]/etc/netbeans.conf . Debe ponerle un prefijo a esas opciones con -J y agregarlas en netbeans_default_options (ver comentarios en netbeans.conf para más información).


Intente agregar el siguiente argumento a netbeans netconf: -J-XX: MaxPermSize = 256m


Puede cambiar las opciones de inicio de netbeans JVM editando el archivo /etc/netbeans.conf. A menudo tengo este tipo de errores cuando desarrollo un Webapp y lo despliego a menudo. En ese caso, reinicio tomcat de vez en cuando.


Si está desarrollando una aplicación web, intente usar la opción vm del servidor

-Xmx512m-Xms512m -XX: MaxPermSize = 512m

Vaya a Herramientas / Servidores // Plataforma / Opciones de VM (Netbeans 7.4)


Vea este link sobre cómo configurar el tamaño de PermSize. Lo más probable es que este no sea un problema de su código, por lo que la única solución sería aumentar el PermSize. He descubierto que esto es bastante frecuente cuando se trabaja con JAXB. En general, si utiliza muchas bibliotecas que también dependen de muchos otros archivos jar, el tamaño predeterminado del espacio PermGen puede no ser lo suficientemente grande.

Consulte estas publicaciones en el blog para obtener más información: fugas de Classloader y Cómo reparar el temido "java.lang.OutOfMemoryError: PermGen space"