有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安装jdk 7后无法生成项目的异常

在ide中为我的项目安装jdk 7并切换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)

我知道sun切换了一些API之类的东西,但ide并没有告诉我到底出了什么问题。提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    您应该真正共享导致异常的代码,但异常表明您正在使用内部Java API(包含在com.sun包中的任何类)。您不应该直接使用这些API,因为它们被认为是私有实现,可能会发生变化。由于这些API是私有的,所以它不像查找Javadoc来查看哪些方法是可用的那样简单,但只要说您正在调用的方法不存在就足够了。你有几个选择:

    1. 如果直接调用此方法,则需要重构。您应该寻找使用公共API完成相同工作的方法
    2. 如果在调用库方法后发生这种情况,您应该向库维护人员提交一个bug,告知他们使用com.sunapi的错误和风险
    3. 如果在调用公共Java API(在javajavax包中的任何内容)后发生这种情况,那么您应该向Oracle提交错误报告。但这一次似乎不太可能

    此外,如果你分享你的代码,我们可能会更好地帮助你

    [编辑] 此外,请参见this page以了解有关为什么不应在com.sun包中使用类的更多信息