首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Java9运行现有应用程序会导致PreDestroy的Guice错误

使用Java9运行现有应用程序会导致PreDestroy的Guice错误
EN

Stack Overflow用户
提问于 2017-10-24 08:24:16
回答 1查看 398关注 0票数 0

为了检查它是否运行,我尝试用当前的Oracle JDK9 (9.0.1)运行我的JDK9编译的应用程序。启动时,guice将获得一个ClassNotFoundExceptionf for javax.annotation.PreDestroy,它包含在类路径上的一个jar中。我使用的是JSR-250扩展:http://code.mycila.com/guice/

在Java8中,它像往常一样运行。因此,我想知道为什么JDK 9仅对运行时环境不向后兼容。我是不是错过了什么让它开始工作的东西?还是我必须配置模块路径并在Java9中编译我的应用程序以使其与Java9运行时一起运行?

下面是堆栈跟踪:(完整的部分在这里:https://pastebin.ca/3894786)

c.g.i.Guice异常被捕获并报告。消息: java.lang.ClassNotFoundException: javax.annotation.PreDestroy java.lang.TypeNotPresentException:键入javax.annotation.PreDestroy不存在 在java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(Unknown源代码中)

EN

回答 1

Stack Overflow用户

发布于 2017-10-24 08:43:18

尝试使用以下VM标志运行应用程序:

代码语言:javascript
复制
--add-modules java.xml.ws.annotation
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46905547

复制
相关文章

相似问题

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