Aumentar Memoria en Java a un Jar (Regularmente con swing)

viernes, junio 03, 2011 , , 5 Comments

Les escribo desde el post numero 100! =) Son pocos pero para nosotros un logro, en fin. Vayamos a lo bueno.
¿Alguna vez les ha pasado que su programa en Swing o su librería (jar) se queda corto en memoria por la potencia que tiene (no estoy queriendo decir que este mal programado, no sería capaz) y les manda un horrible java.lang.OutOfMemoryError: Java heap space? Pues bien aquí la solución:

Abran la consola (Windows + r teclen cmd )  ahí coloquense en el directorio donde este su jar (con cd /ruta/) y escriban:

java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar NombreDelJar.jar

Donde 256 es el mínimo de memoria y 512 el máximo en los 4 casos, con esto estamos dando hasta 512 como máximo a la JVM para que corra nuestra código. Pero bien en caso de que sea una aplicación en swing no vamos a estar abriendo la consola para ejecutarla ¿Cierto? Una forma fácil es crear un archivo bat (.bat) para correr nuestra aplicación con la memoria extra de forma automática de la siguiente manera:
*Abran bloc de notas, copiamos el código de abajo (donde dice  \RutaDelJar no incluye la Unidad que en este caso es C: si se fijan ese viene un poco antes. )
  
Aumentar Memoria Aplicacion 
@echo off
C:
rem *-- Valida el directorio
if not exist \RutaDelJar (
 echo no existe la carpeta
 pause
 exit
)
rem *--- Ejecuta la aplicación.
CD \RutaDelJar
dir /S
java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar NombreDelJar.jar

Ahora guardamos el archivo con extensión .bat y listo!! Este archivo lo podemos usar como un acceso directo dándole doble clic

Saludoss! Los leo en el Post 101!!

*El único inconveniente es que nos abrirá una ventana de la consola

Siguenos en nuestras redes sociales.

5 comentarios:

  1. se puede usar para un .exe o para darle velocidad al jvm desde que inicia el windows

    ResponderEliminar
  2. Hola buenas tardes!!
    A que Jar haces referencia?? no me doy cuenta cual es el jar en donde me tengo q posicionar para despues tirar el comando.. saludos!

    ResponderEliminar
  3. Hola buenas tardes!!
    A que Jar haces referencia?? no me doy cuenta cual es el jar en donde me tengo q posicionar para despues tirar el comando.. saludos!

    ResponderEliminar
  4. Al jar que se hace referencia es el jar que si quiere ejecutar

    ResponderEliminar
  5. da un mensaje de error como lo corrijo el mensaje es "error cannot access java file" en CMD

    ResponderEliminar