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

Spring Boot MVC跳转JSP失败,遇无Java编译器配置问题求助

解决Spring Boot中Controller跳转JSP时出现的"No Java compiler available"错误

我之前在搭建Spring Boot MVC应用跳转JSP时也碰到过一模一样的问题,这个错误本质是Spring Boot处理JSP视图时找不到可用的Java编译器,导致无法编译JSP文件。结合你的场景(RestController正常,普通Controller跳转JSP出错),给你几个实用的排查和解决方向:

1. 确认JSP相关依赖是否完整且配置正确

Spring Boot本身对JSP的支持不是默认的,必须手动引入必要的依赖,而且版本和scope的配置很关键:

  • 必须引入tomcat-embed-jasper(负责JSP编译)和jstl(JSP标准标签库),本地开发时不要给tomcat-embed-jasper设置provided的scope,否则本地运行时会缺失依赖。示例配置:
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <!-- 本地开发保留默认compile scope,部署到外部容器时再改为provided -->
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    
  • 建议用Spring Boot的parent依赖来管理所有版本,避免手动指定版本导致的兼容性问题。

2. 检查JDK配置是否正确

这个错误提示编译器为null,大概率是项目没有关联到完整的JDK(JRE没有javac编译器):

  • 确认IDE(IDEA/Eclipse)中项目的JDK配置:Project Structure里的SDK、Module的Language Level要和你pom.xml中指定的java.version完全一致。
  • 检查系统环境变量JAVA_HOME是否指向完整的JDK目录,而不是JRE目录,JSP编译必须用到JDK里的javac工具。

3. 验证JSP视图解析器配置

确保你在application.properties/application.yml中正确配置了视图解析路径,而且JSP文件的位置要和配置对应:

  • 示例properties配置:
    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp
    
  • JSP文件必须放在src/main/webapp/WEB-INF/jsp/目录下(如果是Maven项目),这个目录结构不能错,否则Spring找不到对应的视图文件。

4. 排查依赖冲突或编译器依赖缺失

  • 对于JDK8及以下版本,Spring Boot需要JDK中的tools.jar来编译JSP,如果这个jar没有被正确引入,就会出现编译器找不到的问题。可以检查Maven依赖中是否包含这个jar,或者手动添加(不过更推荐通过正确配置JDK来解决)。
  • 用mvn dependency:tree命令查看依赖树,排查是否有容器依赖冲突(比如同时引入了tomcat和jetty的依赖),冲突会导致tomcat-embed-jasper无法正常工作。

5. 检查打包和运行方式

Spring Boot默认的jar打包方式对JSP支持有限,因为jar包结构不包含webapp目录:

  • 建议将打包方式改为war,在pom.xml中设置:
    <packaging>war</packaging>
    
  • 如果是war打包,部署到外部容器时可以把spring-boot-starter-tomcat的scope设为provided,但本地开发时无需修改,IDE会自动处理嵌入tomcat的运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:53:26