java - Eclipse JDT 编译器 (ECJ) 在 Java 1.7 中抛出 NPE

标签 java compiler-construction nullpointerexception java-7 eclipse-jdt

在 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)

最佳答案

看起来异常是在命令行参数处理内部引起的。特别是在 -extdirs 选项上。 locations 对象为 null,唯一可能的方法是已在 EclipseFileManager 上调用 close() 方法。我不明白到底为什么,但我建议您获取源代码并在调试器中启动它。

我知道这并不是真正的答案,但希望这至少能让您更接近解决问题。

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

相关文章:

java - getExternalFilesDir(null) 抛出 NullPointerException

java - 是否有记录用户操作以帮助重现错误的工具?

java - Azure - 以编程方式使用 ssl 公钥创建虚拟机

java - 使用法式java格式化时间

c++ - 在 OSX 上更新 GCC

Windows 中的代码未更新

android - 在 Eclipse 中解析 A​​ndroid SDK 内容和初始化 Java 工具时出错

java - 如何删除 TextArea 垂直滚动条周围的空白?

c++ - 使用 boost 库时加快编译/链接时间

java - 安卓 BottomSheetBehavior setState() NullPointerException