【问题标题】:maven java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMapmaven java.lang.IllegalAccessError:试图访问方法 com.google.common.collect.MapMaker.makeComputingMap
【发布时间】:2015-09-11 16:26:19
【问题描述】:

您好,我在使用 m2eclipse 运行 maven 的 eclipse 中遇到此错误, 任何 maven 功能(安装、清理等)都会发生同样的错误

Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class com.google.inject.internal.Annotations$AnnotationChecker
at com.google.inject.internal.Annotations$AnnotationChecker.<init>(Annotations.java:104)
at com.google.inject.internal.Annotations.<clinit>(Annotations.java:122)
at com.google.inject.Key.ensureRetainedAtRuntime(Key.java:362)
at com.google.inject.Key.strategyFor(Key.java:354)
at com.google.inject.Key.get(Key.java:222)
at org.eclipse.sisu.wire.ParameterKeys.<clinit>(ParameterKeys.java:28)
at org.eclipse.sisu.wire.DependencyAnalyzer.<init>(DependencyAnalyzer.java:92)
at org.eclipse.sisu.wire.ElementAnalyzer.<init>(ElementAnalyzer.java:87)
at org.eclipse.sisu.wire.WireModule.configure(WireModule.java:74)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:230)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.google.inject.Guice.createInjector(Guice.java:62)
at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:477)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:203)
at org.apache.maven.cli.MavenCli.container(MavenCli.java:400)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:207)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

控制台指向 slf4j 作为最后一个组成部分

constituent[39]: file:/C:/eclipse/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.5.1.20150109-1819/jars/slf4j-simple-1.7.5.jar

我的项目 maven 依赖 guava-17.0 和 junit-4.10

【问题讨论】:

    标签: java eclipse maven slf4j m2eclipse


    【解决方案1】:

    这是由 2014 年 10 月修复的 bug 引起的。升级 Guice(以及使用它的 Guava)将解决该问题。

    【讨论】:

    • Guice 依赖于你的项目。如果你手动添加,然后下载更新的版本并替换它,如果你是通过 Maven 添加的,那么你需要更新你的 POM,类似于 Gradle 等。这取决于你管理依赖项的方式。
    【解决方案2】:
    • 似乎您正在使用的 guava 版本存在类加载器问题。快速信息转:Here

    • 一些问题主要是因为 guava 版本之间的冲突(驱动程序中的 15.0 与 13.0.1*)。

    【讨论】:

      【解决方案3】:

      使用 maven 升级到最新的 guava 或在构建路径中下载 jar 和它,然后在 weblogic.xml 中添加这些行以使用更新的 guava java 进行部署。这对我有用。

      检查已解决的问题here

        <wls:prefer-application-packages>
      
              <wls:package-name>com.ctc.wstx.*</wls:package-name>
              <wls:package-name>org.codehaus.stax2.*</wls:package-name>
              <wls:package-name>com.sun.xml.messaging.saaj.*</wls:package-name>
      
              <wls:package-name>com.google.common.*</wls:package-name>
      
              <wls:package-name>org.bouncycastle.*</wls:package-name>
          </wls:prefer-application-packages>
      

      【讨论】:

        【解决方案4】:

        我遇到了这个错误,当我将 jdk 版本更改为 7 而不是 8 时,问题消失了。

        【讨论】:

          猜你喜欢
          • 2014-07-20
          • 2011-10-27
          • 2016-05-31
          • 2020-12-30
          • 2013-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-22
          相关资源
          最近更新 更多