web-dev-qa-db-fra.com

Comment résoudre l'erreur Java.lang.NullPointerException?

Quand je lance mon programme Java, il me donne une erreur sur cette ligne

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

L'erreur que je reçois est:

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)

Pouvez-vous s'il vous plaît me dire comment puis-je résoudre cette erreur?

47
Justin k

Une exception NullPointerException signifie qu'une des variables que vous transmettez est nulle, mais le code tente de l'utiliser comme si ce n'était pas le cas.

Par exemple, si je fais ceci:

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

Le code tente de saisir la valeur intValue de myInteger, mais comme il est null, il n'en a pas: une exception de pointeur null se produit.

Cela signifie que votre méthode getTask attend quelque chose qui n'est pas null, mais que vous passez un null. Déterminez ce dont GetTask a besoin et transmettez ce qu'il veut!

81
Jeremy

Cette erreur se produit lorsque vous essayez de faire référence à une instance d'objet null. Je ne peux pas vous dire ce qui cause cette erreur par vos informations données, mais vous pouvez la déboguer facilement dans votre IDE. Je vous recommande fortement d'utiliser la gestion des exceptions pour éviter tout comportement inattendu du programme.

7

Juste un coup dans le noir (puisque vous n'avez pas partagé le code d'initialisation compiler avec nous): la façon dont vous récupérez le compiler provoque le problème. Indiquez à votre JRE d’être à l’intérieur du JDK, car contrairement à jdk, jre ne fournit aucun outil et a donc pour résultat NPE.

2
aviad