Pregunta

Tengo un .JAR que aparentemente utiliza demasiada memoria, y produce una excepción "espacio Java heap" (o algo similar).

Así que trató de ejecutar el .JAR a través del CMD como esto:

C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m

Esto no resuelve el problema. Mismo error. Ahora, cuando me registré la ficha procesos en el administrador de tareas de Windows, me di cuenta de que el proceso de mi frasco tiene mucha menos memoria que lo que pedí (igual que ejecutarlo sin los parámetros).

¿Por qué se ignora los parámetros?

Además, creo que la excepción se produce en todo el tiempo de los alcances del proceso 100 MB de uso de la memoria. ¿Es posible que el GC está tratando de liberar la memoria y eso es lo que causa el problema? ¿Hay algún parámetro que puede configurar para los GC para evitar eso?

Gracias, Malki:)

¿Fue útil?

Solución

El comando

javaw -jar MyJar.jar -Xms64m -Xmx128m

utilizará -Xms ... y ... -Xmx como parámetros a los "principales (args String [])" método.
Parámetros a la JVM se debe pasar antes de que la parte jar:

javaw -Xms64m -Xmx128m -jar MyJar.jar

La razón de esto puede ser visto cuando ejecutamos "java -version":

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

donde sus parámetros -Xms ... y ... -Xmx opciones para la JVM.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top