2012-05-05 64 views
37

Cuando ejecuto mi programa Java, me da un error en esta línea¿Cómo resolver el error java.lang.NullPointerException?

compiler.getTask(null, null, new DiagnosticCollector<JavaFileObject>(), null, null, compilationUnits);

error que estoy consiguiendo es:

Exception in thread "main" java.lang.NullPointerException 
    at AnotherClassLoader.loadClass(test.java:58) 
    at test.main(test.java:30) 
    at Main.main(Main.java:68) 

¿Puede por favor dígame cómo puedo solucionar este error ?

+0

Incluya un [SSCCE] (http://www.sscce.org) si necesita ayuda. No podemos hacer mucho sin un SSCCE. Gracias. Ah, y considera cambiar el título de tu pregunta a algo un poco más descriptivo, por favor. – kentcdodds

+0

La stacktrace le da la línea exacta donde ocurre la 'NullPointerException'. Solo tienes que entender por qué lo tienes y arreglarlo ... –

+4

Se resuelve ** identificando el problema ** y luego ** corrigiendo el problema identificado **. Los NPE [deberían] solo aparecerán en el caso de: 'someNullExpression.someMember'. Es decir, el valor 'nulo' debe ser la expresión * objetivo * de un miembro/método para que esta excepción se produzca de forma natural. En el ejemplo publicado solo hay * una * expresión que puede cumplir este requisito. (Sugerencia: ¿qué evalúa la variable 'compiler'?) –

Respuesta

6

Este error se produce cuando intenta hacer referencia a una instancia de objeto nulo. No puedo decirle qué causa este error con su información, pero puede depurarlo fácilmente en su IDE. Le recomiendo que use el manejo de excepciones para evitar el comportamiento inesperado del programa.

74

Una NullPointerException significa que una de las variables que está pasando es nula, pero el código intenta usarla como no lo es.

Por ejemplo, Si hago esto:

Integer myInteger = null; 
int n = myInteger.intValue(); 

El código intenta obtener la intValue de miEntero, pero ya que es nulo, no tiene uno: una excepción de puntero nulo sucede.

Lo que esto significa es que su método getTask está esperando algo que no es nulo, pero está pasando un nulo. ¡Descubre lo que getTask necesita y pasa lo que quiere!

1

Solo una foto en la oscuridad (ya que no compartió el código de inicialización compiler con nosotros): la forma en que recupera el compiler causa el problema. Señale que su JRE está dentro del JDK ya que a diferencia de jdk, jre no proporciona ninguna herramienta por lo tanto, resulta en NPE.

Cuestiones relacionadas