如何解决java.lang.NullPointerException错误?

当我运行我的Java程序时,它给我一个这条线上的错误

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

我得到的错误是:

 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) 

你能告诉我怎么解决这个错误?

NullPointerException意味着你正在传递的variables之一是null,但是代码尝试使用它,就像它不是。

例如,如果我这样做:

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

该代码试图抓住myInteger的intValue,但由于它是空的,它没有一个:空指针exception发生。

这意味着你的getTask方法期望的东西不是null,但是你传递一个null。 找出getTask需要什么,并通过它想要的!

当您尝试引用空对象实例时,会发生此错误。 我不能告诉你由于给定的信息导致这个错误的原因,但是你可以在IDE中轻松地debugging它。 我强烈build议您使用exception处理来避免意外的程序行为。

只是在黑暗中拍摄(因为您没有与我们分享compiler初始化代码):您检索compiler的方式导致问题。 将JRE指向JDK内部,与jdk不同,因此jre不提供任何工具,因此导致NPE