在 Ubuntu 上运行 JSP(Java Server Pages) 报错,通常不是“JSP 本身”的问题,而是 环境配置 / 服务器 / 代码 / 权限 的问题。下面我按最常见情况帮你梳理排查思路和解决方法。
java -version
javac -version
如果没有 javac,需要安装 JDK:
sudo apt update
sudo apt install openjdk-11-jdk
JSP 必须运行在以下服务器中:
确认 Tomcat 是否安装:
systemctl status tomcat
# 或
ps aux | grep tomcat
原因:
✅ 正确路径:
/var/lib/tomcat9/webapps/你的项目/index.jsp
访问方式:
http://IP:8080/你的项目/index.jsp
浏览器显示类似:
org.apache.jasper.JasperException
Unable to compile class for JSP
✅ 常见原因与解决:
Tomcat 9 推荐 JDK 8 / 11
查看 Tomcat 使用的 JDK:
sudo nano /etc/default/tomcat9
确认:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
重启:
sudo systemctl restart tomcat9
例如:
<% int i = "abc"; %>
会导致编译失败。
✅ 查看详细错误:
cat /var/log/tomcat9/catalina.out
Permission denied (/var/lib/tomcat9/webapps)
✅ 解决:
sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps
sudo chmod -R 755 /var/lib/tomcat9/webapps
sudo netstat -tunlp | grep 8080
修改端口:
sudo nano /etc/tomcat9/server.xml
改:
<Connector port="8080" ...>
Ubuntu 防火墙:
sudo ufw allow 8080
云服务器还要放行 安全组 8080
/var/lib/tomcat9/webapps/test/index.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<h1>Hello JSP</h1>
<%= new java.util.Date() %>
</body>
</html>
访问:
http://服务器IP:8080/test/index.jsp
你可以直接把 报错信息原文 发出来(非常重要),例如:
catalina.out 日志我可以逐行帮你分析并给出解决方案。