Reputation: 2786
I'm trying to run a unit test in Intellij and I get the below build failure even before it has a chance to run:
java: java.lang.ClassNotFoundException: org.checkerframework.checker.nullness.NullnessChecker
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.checkerframework.checker.nullness.NullnessChecker
at org.jetbrains.jps.javac.JavacMain.lookupAnnotationProcessors(JavacMain.java:326)
at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:233)
at org.jetbrains.jps.javac.ExternalJavacProcess.compile(ExternalJavacProcess.java:189)
at org.jetbrains.jps.javac.ExternalJavacProcess.access$400(ExternalJavacProcess.java:28)
at org.jetbrains.jps.javac.ExternalJavacProcess$CompilationRequestsHandler$1.run(ExternalJavacProcess.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.ClassNotFoundException: org.checkerframework.checker.nullness.NullnessChecker
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.jetbrains.jps.javac.LazyClassLoader.findClass(LazyClassLoader.java:58)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.jetbrains.jps.javac.JavacMain.lookupAnnotationProcessors(JavacMain.java:308)
... 7 more
I have a maven pom file configured with checker framework by following https://checkerframework.org/manual/#maven .
Intellij is configured to load the maven project; however I have disabled 'Delegate IDE build/run actions to Maven'. I do not want to have to enable this. I also do not want to disable or remove checker framework. So how do I workaround this?
Upvotes: 0
Views: 62
Reputation: 2786
Go to Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
Go thru all projects and make sure 'Enable annotation processing' is unchecked. If you need it enabled for whatever reason, remove org.checkerframework.checker.nullness.NullnessChecker
.
For some reason Intellij sets this up using what's in your pom file.
Upvotes: 0
Reputation: 661
First try to run test from command line, if it fails fix it. Then try to run it from IDE, if it fails find the difference in environment. IDE adds its own conventions and settings, fix them until test passes
Upvotes: 0