2016-10-26 2 views
4

Bien que le même code ait été compilé avec succès avec la version JDK 1.6, après la mise à niveau vers JDK 1.8, il ne compilera pas, en disant java cannot access ....class file ...as class file not found though it exists.Compilation avec JDK 1.8 java: impossible d'accéder au fichier de classe ... fichier de classe non trouvé

Je suis en train de compiler ceci dans IntelliJ Idea 13 IDE, essayé avec l'option Rebuild et la configuration ANT build - le résultat est le même.

Toute aide est fortement appréciée.

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) 
+0

Vérifiez que la classe "missing" est réellement sur le chemin de classe classpath/buildpath. –

+0

Oui Stephen, c'est en construction. Si je reviens à JDK 1.6 aucun problème vu dans la compilation, se produisant lors de la migration vers 1.8 –

+0

y at-il des problèmes de compilation signalés par eclipse lorsque vous migrez vers 1.8 –

Répondre

4

Ce problème est résolu maintenant :). C'est essentiellement lié à la configuration du chemin de classe et uniquement applicable au JDK 1.8. Par exemple: Si la classe 'A' a une référence à la classe B et que la classe B implémente une interface dite 'C' alors javac dans le JDK 1.8 requiert à la fois la classe B et l'interface C sur le chemin de la classe à 1,8, avoir seulement la classe B sur le chemin de classe était suffisant.

Veuillez consulter https://bugs.openjdk.java.net/browse/JDK-8055048 pour plus d'informations.