在JRE 1.7中运行时,我从ECJ(4.2.1版)编译器获取了NPE,同一项目在JRE 1.6上可以正确编译。

CompilationProgress监视器显示总共有2493个任务,但是我得到了NPE。

有任何想法吗?

TIA

java.lang.NullPointerException
    at org.eclipse.jdt.internal.compiler.apt.util.EclipseFileManager.concatFiles(EclipseFileManager.java:202)
    at org.eclipse.jdt.internal.compiler.apt.util.EclipseFileManager.handleOption(EclipseFileManager.java:669)
    at org.eclipse.jdt.internal.compiler.apt.dispatch.BatchProcessingEnvImpl.(BatchProcessingEnvImpl.java:88)
    at org.eclipse.jdt.internal.compiler.apt.dispatch.BatchAnnotationProcessorManager.configure(BatchAnnotationProcessorManager.java:69)
    at org.eclipse.jdt.internal.compiler.batch.Main.initializeAnnotationProcessorManager(Main.java:3632)
    at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:3737)
    at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1679)
    at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1372)
    at org.eclipse.jdt.core.compiler.batch.BatchCompiler.compile(BatchCompiler.java:80)
    at org.eclipse.jdt.core.compiler.batch.BatchCompiler.compile(BatchCompiler.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
...
    at java.lang.Thread.run(Thread.java:722)

最佳答案

看起来异常是在命令行args处理内部引起的。特别是在-extdirs选项上。 locations对象为null,唯一的方式是如果close()上已经调用EclipseFileManager方法。我不知道为什么会这样,但是我建议您获取源代码,然后在调试器中启动它。

我知道这不是一个真正的答案,但是希望,这至少可以使您更接近解决问题。

关于java - Eclipse JDT编译器(ECJ)在Java 1.7中引发NPE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15819926/

10-10 03:37