从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(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()
}
}
不幸的是,这并没有解决问题。如果有人有建议,那将不胜感激!
好的,我发现了如何使它工作:
我必须将--add-modules java.security.jgss添加到IntelliJ中的VM选项中(以及Gradle(见下文)),然后它可以工作。
bootRun {
jvmArgs = ["--add-modules", "java.security.jgss"]
}