You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置OpenJDK 11后Spring Tool Suite无法启动求助

解决OpenJDK 11环境下Spring Tool Suite 3.9.x启动失败问题

你的问题核心在于STS 3.9.2(基于Eclipse Oxygen 4.7)对Java 11的原生支持不足,加上Java 11移除了javax.annotation这类Java EE相关的模块,导致启动时出现NoClassDefFoundError。下面给你两种可行的解决方案:

方案一:升级到支持Java 11的STS版本(推荐)

STS 4.x系列(比如STS 4.6及以上)基于Eclipse 2019+版本,原生支持Java 11及更高版本,不需要额外配置就能直接用OpenJDK 11启动。如果你没有必须使用STS 3.x的理由,这是最省心的解决办法。

方案二:修改STS.ini配置适配Java 11(针对必须使用STS 3.9.x的情况)

如果需要继续使用当前的STS 3.9.2,你需要修改STS.ini的VM参数,手动引入缺失的模块并更新Java版本要求:

  1. 找到你的STS.ini文件,打开并定位到-vmargs部分
  2. 按以下方式修改参数:
    -startup plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
    --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.551.v20171108-1834
    -product org.springsource.sts.ide
    --launcher.defaultAction openFile
    -vm C:\Program Files\Oracle\OpenJDK 11.0.1\bin\javaw.exe
    -vmargs
    -Dosgi.requiredJavaVersion=11
    --add-modules=ALL-SYSTEM,javax.annotation,java.xml.bind
    -Xms40m
    -Dosgi.module.lock.timeout=10
    -Xverify:none
    -Dorg.eclipse.swt.browser.IEVersion=10001
    -Xmx1200m
    
  3. 保存文件后,重新启动STS.exe

配置说明:

  • -Dosgi.requiredJavaVersion=11:告诉STS当前使用的Java版本是11,避免版本校验冲突
  • --add-modules=ALL-SYSTEM,javax.annotation,java.xml.bind:Java 11中移除了javax.annotation.PostConstruct/PreDestroy所在的模块,需要通过该参数显式引入,让STS能找到这些类

内容的提问来源于stack exchange,提问作者cgsabari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:36:52