使用Java9运行现有应用程序会导致PreDestroy

时间:2017-10-24 08:24:17

标签: java guice java-9

只是为了检查它是否运行我试图用当前的Oracle JDK9(9.0.1)运行我的Java8编译的应用程序。启动时,guice会获取javax.annotation.PreDestroy的ClassNotFoundExceptionf,它包含在类路径的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(未知   源)

1 个答案:

答案 0 :(得分:1)

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

--add-modules java.xml.ws.annotation