使用Gradle Tomcat插件启动Spring MVC项目失败求助
Gradle Tomcat插件启动报错解决思路
核心问题分析
报错groovy.lang.MissingMethodException: 找不到sun.security.tools.keytool.Main.main(),本质是JDK内部API访问限制或插件与JDK版本不兼容导致的类加载问题。
具体解决步骤
- 验证JDK版本兼容性:该
keytool类属于JDK内部API,JDK 9及以上默认封闭了这类内部API的访问权限,若使用JDK 9+,需确认插件是否适配。 - 切换JDK版本:临时改用JDK 8执行
tomcatRun命令,若能正常启动,即可确认是JDK版本适配问题。 - 升级Gradle Tomcat插件:选用适配JDK 9+的最新插件版本,更新
build.gradle中的插件依赖。 - 添加JVM参数(JDK 9+适用):在
build.gradle的Tomcat任务中添加参数开放内部API访问:tomcatRun { jvmArgs += ['--add-exports', 'jdk.jartool/sun.security.tools.keytool=ALL-UNNAMED'] } - 排查依赖冲突:执行
gradle dependencies查看依赖树,确认是否存在与Tomcat插件、JDK安全工具类冲突的依赖。
相关关键词
JDK模块化、内部API访问限制、Gradle Tomcat插件版本兼容、--add-exports参数、keytool类加载异常
内容的提问来源于stack exchange,提问作者John Pham
相关产品推荐
相关产品推荐

