为了检查它是否运行,我尝试用当前的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源代码中)
发布于 2017-10-24 08:43:18
尝试使用以下VM标志运行应用程序:
--add-modules java.xml.ws.annotationhttps://stackoverflow.com/questions/46905547
复制相似问题