Domanda

Ho un .JAR che, apparentemente, consuma troppa memoria, e genera un'eccezione "spazio Java heap" (o qualcosa di simile).

Così ho provato a fare funzionare il .JAR tramite il CMD in questo modo:

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

Questo non ha risolto il problema. Stesso errore. Ora, quando ho controllato la scheda Processi in Task Manager di Windows, ho notato che il processo di mio vaso ha molto meno memoria di quello che ho chiesto (stessa cosa che lanciare senza parametri).

Perché è ignorando i parametri?

Inoltre, penso che l'eccezione è gettata intorno al tempo il corso di processo 100MB di utilizzo della memoria. E 'possibile che il GC sta cercando di liberare la memoria ed è quello che causa il problema? C'è qualche parametro è possibile impostare per il GC per evitare questo?

Grazie, Malki:)

È stato utile?

Soluzione

Il comando

javaw -jar MyJar.jar -Xms64m -Xmx128m

utilizzerà -Xms ... e -Xmx ... come parametri per il "main (String [] args)" metodo.
Parametri a la JVM deve essere passato prima che la parte -jar:

javaw -Xms64m -Xmx128m -jar MyJar.jar

La ragione di ciò può essere visto quando eseguiamo "java -version":

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

dove i parametri di -Xms ... e -Xmx ... sono opzioni per la JVM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top