安装jdk 7并在ide中为我的项目切换java平台后,我试着建立项目时得到这个。
warning: [options] bootstrap class path not set in conjunction with -source 1.6
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.NoSuchMethodError: com.sun.tools.javac.util.Name$Table.instance(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Name$Table;
at uk.org.retep.util.javac.JavacUtils.<init>(JavacUtils.java:128)
at uk.org.retep.util.annotation.AnnotationScannerProcessor.process(AnnotationScannerProcessor.java:76)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1106)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
at com.sun.tools.javac.main.Main.compile(Main.java:419)
at com.sun.tools.javac.main.Main.compile(Main.java:333)
at com.sun.tools.javac.main.Main.compile(Main.java:324)
at com.sun.tools.javac.Main.compile(Main.java:76)
at com.sun.tools.javac.Main.main(Main.java:61)
我知道太阳换了一些api或者什么,但是ide并没有告诉我什么是错误的。提前谢谢。
答案 0 :(得分:3)
您应该真正共享导致异常的代码,但异常表示您正在使用内部Java API(com.sun
包中包含的任何类)。您不应该直接使用这些API,因为它们被视为私有实现并且可能会发生变化。由于这些API是私有的,它并不像查找Javadoc那样简单,看看有哪些方法可用,但足以说明你所调用的方法不存在。您有几个选择:
com.sun
API的风险。java
或javax
包中的任何内容)之后发生这种情况,那么您应该向Oracle提交错误报告。但这似乎不太可能。此外,如果您共享代码,我们可以更好地为您提供帮助。
[编辑]
此外,请参阅this page,了解有关不应使用com.sun
包中的类的原因的详细信息。