Compiling with JDK 1.8 java: unable to access class file ... class file not found

Although the same code successfully compiled with JDK 1.6, it will not compile after upgrading to JDK 1.8, saying java cannot access ....class file ...as class file not found though it exists .

I compile this in the IntelliJ Idea 13 IDE, I tried both with the Rebuild parameter and with the ANT build setting - the result is the same.

Any help is appreciated.

 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) 
+5
source share
1 answer

This problem is resolved now :). This is mainly related to setting the class path and is applicable only to JDK 1.8.

For example: if class ā€œAā€ has a reference to class B, and class B implements interface ā€œCā€, then javac in JDK 1.8 requires both class B and interface C in the class path, where up to 1.8 it is enough to have only class B on way to class.

See https://bugs.openjdk.java.net/browse/JDK-8055048 for more details.

+4
source

Source: https://habr.com/ru/post/1258797/


All Articles