2010-03-04 20 views
29

He escrito un código y ejecutarlo mucho, pero de repente me consiguió una OutOfMemoryError:Excepción en el hilo "principal" java.lang.OutOfMemoryError: Java heap space

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
     at javax.media.j3d.BoundingBox.<init>(BoundingBox.java:86) 
     at javax.media.j3d.NodeRetained.<init>(NodeRetained.java:198) 
     at javax.media.j3d.LeafRetained.<init>(LeafRetained.java:40) 
     at javax.media.j3d.LightRetained.<init>(LightRetained.java:44) 
     at javax.media.j3d.DirectionalLightRetained.<init>(DirectionalLightRetained.java:50) 
     at javax.media.j3d.DirectionalLight.createRetained(DirectionalLight.java:116) 
     at javax.media.j3d.SceneGraphObject.<init>(SceneGraphObject.java:119) 
     at javax.media.j3d.Node.<init>(Node.java:178) 
     at javax.media.j3d.Leaf.<init>(Leaf.java:50) 
     at javax.media.j3d.Light.<init>(Light.java:270) 
     at javax.media.j3d.DirectionalLight.<init>(DirectionalLight.java:87) 
+1

Una nota de algo que puede aparecer más tarde, si obtiene errores acerca de estar fuera del espacio permanente, la bandera para eso es -XX: PermSize = my -XX: MaxPermSize = m – Carl

+0

Posible duplicado de [java.lang.OutOfMemoryError: espacio de pila de Java] (http:// sta ckoverflow.com/questions/1596009/java-lang-outofmemoryerror-java-heap-space) –

+0

Mira lo siguiente: [Excepción en el hilo "principal" java.lang.OutOfMemoryError: espacio de pila de Java] (http: // www. firatatagun.com/blog/exception-in-thread-main-java-lang-outofmemoryerror-java-heap-space/). Este sitio tiene información que podría ser útil. – DarthVader

Respuesta

50

Bueno, es bastante auto-explicativo : te has quedado sin memoria.

Es posible que desee intentar iniciarlo con más memoria, utilizando el indicador -Xmx, p. Ej.

java -Xmx2048m [whatever you'd have written before] 

Esto utilizará hasta 2 gigas de memoria.

Consulte el non-standard options list para obtener más información.

+0

+1 Y extremadamente duplicado: http://stackoverflow.com/search?q=java.lang.OutOfMemoryError – OscarRyz

+3

¿Simplemente agrega un montón de pila? ¿No queremos investigar si hay una pérdida de memoria? –

+1

@Zwei: No para empezar. Solo cambiarlo para usar más memoria es una manera extremadamente simple de tratar de mejorar la situación para empezar.Si funciona, genial, y si no funciona, no has perdido casi nada al intentarlo. –

2

Te has quedado sin memoria. Intente agregar -Xmx256m a su línea de comandos java. El 256m es la cantidad de memoria para dar a la JVM (256 megabytes). Por lo general, se predetermina a 64m.

2

No sé acerca de javax.media.j3d, por lo que podría estar equivocado, pero generalmente quiere investigar si hay una pérdida de memoria. Bueno, como otros notan, si era 64MB y estás haciendo algo con 3d, tal vez es demasiado pequeño ...

Pero si fuera tú, configuraría un generador de perfiles o visualvm, y deja que tu aplicación correr por un tiempo prolongado (días, semanas ...). Luego, consulte el historial de asignación de montones y make sure it's not a memory leak.

Si usa un generador de perfiles, como JProfiler o el que viene con NetBeans IDE, etc., puede ver qué objeto se está acumulando y luego rastrear lo que está pasando ... Bueno, casi siempre algo no se elimina incorrectamente de una colección ...

2

enter image description here -Xmx1024m -XX: MaxPermSize = 512m -Xms512m

Añadir este parámetro como argumento a su servidor params

1

Si va a volver a compilar un desmontado APK con la herramienta APK :

El sistema justo de asignación de memoria un poco más grande

interruptor de ajuste -Xmx1024m a -Xmx2048m

java -Xmx2048m -jar signapk.jar -w testkey.x509.pem testkey.pk8 "%APKOUT%" "%SIGNED%" 

ya está bueno para ir .. :)

+0

¿De dónde exactamente él menciona algo sobre un 'APK'? –

+0

puede que no, pero busco el error en google, y google me dirigió a este enlace. cualquier persona con este problema se mostrará esta página, ya que estoy recompilando Android APK –

Cuestiones relacionadas