首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"NoClassDefFoundError: javax/inject/Provider“,即使包含了javax.inject依赖项

"NoClassDefFoundError: javax/inject/Provider“,即使包含了javax.inject依赖项
EN

Stack Overflow用户
提问于 2018-07-09 20:31:42
回答 1查看 3K关注 0票数 3

升级了一些Glassfish/Grizzly依赖项(为了与Azure的SDK设备客户端的最新版本兼容),我开始收到一个错误,因为com.google.common.EventBus已经不存在了。添加依赖项:

代码语言:javascript
复制
<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>15.0</version>
</dependency>

修正了这个问题,并且它能够在IntelliJ中本地运行。但是,当我将编译到Raspberry的.deb文件部署到Raspberry时,它开始产生错误:

com.google.inject.internal.MoreTypes.canonicalizeForKey(MoreTypes.jav a:81) at com.google.inject.Key.(Key.java:119) at com.google.inject.Key.get(Key.java:212) at com.google.inject.internal.InjectorShell$RootModule )com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223),com.google.inject.spi.Elements.getElements(Elements.java:101),com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133),com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103),com.google.inject.Guice.createInjector( com.google.inject.Guice.createInjector(Guice.java:72) at com.google.inject.Guice.createInjector(Guice.java:62) at com.infusion.empm.Main.main(Main.java:32) at : java.lang.ClassNotFoundException: javax.inject.Provider at java.net.URLClassLoader$1.run(URLClassLoader.java:366) )

我在许多地方读到了添加依赖项

代码语言:javascript
复制
<dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
</dependency>

应该修复这个问题(我已经有guice &javax依赖项引用了here),但是它没有效果。当我这样做时,结果是两个javax.inject jars (生成的另一个jars似乎解释了为什么我不需要显式添加版本1才能在本地运行):

javax.inject-2.5.0-b42.jar javax.inject-1.jar

Someone else here在拥有这两个jars时使用了排除,但是即使我相应地更改了hk2依赖项,两个jars仍然存在。我也听说过添加javax.ws.rs-api是有帮助的,但这已经存在了。Java代码中的导入直接引用了com.google.inject.Provider,因此我认为没有必要调用guicify将JSR-330提供程序转换为Guice。将本地代码中的每个"com.google.inject“导入替换为"java.inject”会产生相同的行为,因此它必须是引用google代码的依赖项,这反过来又无法找到javax。

EN

回答 1

Stack Overflow用户

发布于 2018-07-10 13:40:36

原来原因是Pi上的一个脚本,它硬编码了类路径中的罐子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51253576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档