使用JDK 1.8 java编译:无法访问类文件。。。找不到类文件
虽然使用JDK1.6版本成功编译了相同的代码,但升级到JDK1.8后,它不会编译,说使用JDK 1.8 java编译:无法访问类文件。。。找不到类文件,java,java-8,javac,jdk1.6,jdk1.8.0,Java,Java 8,Javac,Jdk1.6,Jdk1.8.0,虽然使用JDK1.6版本成功编译了相同的代码,但升级到JDK1.8后,它不会编译,说java无法访问…类文件…因为类文件虽然存在,但找不到它 我在IntelliJ Idea 13 IDE中编译这个,尝试了重建选项和配置的ANT构建-结果是一样的 非常感谢您的帮助 cannot access IDispatchRequest class file for com.abc.xyz.orchestrator.dispatch.IDispatchRequest not found 1 error C
java无法访问…类文件…因为类文件虽然存在,但找不到它
我在IntelliJ Idea 13 IDE中编译这个,尝试了重建选项和配置的ANT构建-结果是一样的
非常感谢您的帮助
cannot access IDispatchRequest
class file for com.abc.xyz.orchestrator.dispatch.IDispatchRequest not found
1 error
Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1079)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:882)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.Main.start(Main.java:179)
at org.apache.tools.ant.Main.main(Main.java:268)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.ant.execution.AntMain2.main(AntMain2.java:30)
此问题现已解决:)。它基本上与类路径设置相关,只适用于JDK1.8 例如:如果类“A”引用了类B,而类B实现了一个接口,比如说“C”,那么JDK 1.8中的javac需要类路径上的类B和接口C,而在1.8之前,只有类路径上的类B就足够了
请参阅以了解更多信息。我在执行返回类路径中没有的类的函数时遇到了这个问题,但我只想访问他的内部字段。 例如:
container.getContent().getField()
我必须导入Content类才能使其正常工作。您可以使用gradle解决此问题 将“transitive=true”添加到依赖项中。就这样,
compile('com.***.android:***sdk:1.0.2.6@aar') {
transitive = true
}
Build->Rebuild项目对我来说很有效,这意味着我下载了一个损坏的jar。Nuke~/.m2/repository并重试…对于我来说,无法访问的类位于外部JAR中。 这个场景与这里被接受的答案是合适的 我解决了我的问题,将JAR作为一个依赖项添加到抛出错误的模块中。
这意味着,如果错误是从类A抛出的,而类C未被访问,我将包含类C的JAR作为依赖项添加到包含类A的模块的pom.xml中。检查“缺少”的类是否实际位于编译时类路径/构建路径上。是的,Stephen,它位于构建路径中。如果我切换回JDK1.6,在编译过程中看不到任何问题,迁移到1.8时会发生问题迁移到1.8时eclipse是否报告了任何编译时问题