Java Tomcat can';在OpenJDK 11上找不到类
从OracleJDK 8迁移到OpenJDK 11后,Tomcat 8不再启动,出现以下异常:Java Tomcat can';在OpenJDK 11上找不到类,java,spring-boot,kotlin,java-11,jgss,Java,Spring Boot,Kotlin,Java 11,Jgss,从OracleJDK 8迁移到OpenJDK 11后,Tomcat 8不再启动,出现以下异常: Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSContext at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471) at java.base/java.lang.ClassLoader.loadClass(ClassLo
Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSContext
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 43 common frames omitted
我们的Spring Boot(Kotlin+Java)项目是由Gradle 5.2.1构建的,我尝试的是在build.Gradle中添加以下配置:
compileJava {
inputs.property("moduleName", moduleName)
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'java.security.jgss'
]
classpath = files()
}
}
不幸的是,这并不能解决问题。如果有人有建议,我们将不胜感激 好吧,我发现了如何让它工作: 我必须添加--将模块java.security.jgss添加到IntelliJ中的VM选项中,(以及添加到Gradle(见下文),然后它就可以工作了
bootRun {
jvmArgs = ["--add-modules", "java.security.jgss"]
}
你能确认你在运行时也添加了
java.security.jgss
模块吗?据我所知,你已经添加了编译器参数,这使得这个模块仅可用于编译。你仍然需要在运行tomcat时添加相同的选项。谢谢Kedar。我试着查找,但不确定如何进行。这是真的吗是说我必须将其添加到module-info.java中?