18

同じコードが JDK 1.6 バージョンで正常にコンパイルされるようになっていましたが、JDK 1.8 にアップグレードするとコンパイルされず、java cannot access ....class file ...as class file not found though it exists.

これを 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)
4

6 に答える 6

0

私にとって、アクセスできないクラスは外部 JAR 内にありました。シナリオは、ここで受け入れられた回答に適していました。

エラーがスローされたモジュールへの依存関係としてJARを追加することで解決しました。つまり、クラス A からエラーがスローされ、クラス C にアクセスできなかった場合、クラス A を含むモジュールの pom.xml に、クラス C を含む JAR を依存関係として追加しました。

于 2021-02-12T16:17:02.620 に答える
-1

gradle を使用してこの問題を解決できます。

依存関係に「transitive = true」を追加します。ちょうどこのような:

    compile('com.***.android:***sdk:1.0.2.6@aar') {
        transitive = true
    }
于 2018-10-26T06:36:34.813 に答える