Ubuntu下无需IDE及GlassFish等软件安装JEE并命令行部署Tomcat应用
问题1:无额外插件/全栈应用服务器的JEE环境配置
首先你不需要单独安装完整的JEE(现已更名为Jakarta EE)发行包。针对你需要开发运行JSP、Servlet的场景,Tomcat本身已经实现了JEE规范中Web容器对应的所有必要规范,不需要额外安装GlassFish这类全栈应用服务器,也不需要任何附加插件,只要完成Tomcat的安装即可:
- 提前确认JDK环境正常,执行
java -version、javac -version核对版本符合目标Tomcat版本要求(Tomcat 9需JDK 8+,Tomcat 10需JDK 11+) - 下载对应版本的Tomcat核心压缩包(tar.gz格式),解压到本地目录,比如
/opt/tomcat - 配置环境变量:在
~/.bashrc中添加export CATALINA_HOME=/opt/tomcat,保存后执行source ~/.bashrc生效 - 执行
$CATALINA_HOME/bin/startup.sh,访问localhost:8080出现Tomcat默认欢迎页即为配置完成,此时你已经拥有了运行JSP、Servlet所需的全部JEE相关环境。
问题2:纯命令行部署JSP/Servlet到Tomcat
前置准备:构建标准Web项目结构
首先按照Servlet规范建立项目目录,示例结构如下:
your_project/ ├── src/ # 存放Java源码(比如Servlet) │ └── com/ │ └── example/ │ └── MyServlet.java └── web/ # 存放Web资源 ├── index.jsp # 你自己的JSP文件 └── WEB-INF/ ├── web.xml # 项目配置文件 ├── classes/ # 编译后的class文件存放目录 └── lib/ # 第三方依赖jar存放目录
步骤1:编译Servlet(纯JSP项目可跳过本步骤)
编译Servlet需要用到Tomcat自带的Servlet API包,直接指定类路径到Tomcat的lib目录即可,无需额外下载依赖:
# Tomcat 9及之前版本命令 javac -cp $CATALINA_HOME/lib/servlet-api.jar src/com/example/MyServlet.java -d web/WEB-INF/classes # Tomcat 10及之后版本命令(API包名已改为Jakarta前缀) javac -cp $CATALINA_HOME/lib/jakarta.servlet-api.jar src/com/example/MyServlet.java -d web/WEB-INF/classes
参数说明:-cp指定编译类路径,-d指定class文件输出目录,会自动生成对应包名的层级目录。
步骤2:配置web.xml(纯JSP项目可跳过本步骤)
在WEB-INF/web.xml中添加Servlet的访问映射配置,示例如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> </web-app>
步骤3:部署到Tomcat
方式1:直接复制目录部署
把web目录重命名为你的应用名(比如myapp),直接复制到Tomcat的webapps目录即可:
cp -r web $CATALINA_HOME/webapps/myapp
如果Tomcat没有开启热加载,执行重启命令生效:
$CATALINA_HOME/bin/shutdown.sh && $CATALINA_HOME/bin/startup.sh
部署完成后访问路径为:http://localhost:8080/myapp/你的资源路径,比如JSP路径为http://localhost:8080/myapp/index.jsp,Servlet路径为http://localhost:8080/myapp/myServlet。
方式2:打包为WAR包部署
进入web目录打包为war包后复制到webapps目录即可,Tomcat会自动解压加载:
cd web jar -cvf myapp.war * cp myapp.war $CATALINA_HOME/webapps/
注意事项
- 如遇权限问题,给Tomcat的webapps目录赋予对应读写权限,或使用sudo执行操作即可
- Tomcat 10及以上版本使用Jakarta EE规范,Servlet类的导入包需改为
jakarta.servlet.*,不要使用旧的javax.servlet.*包名,否则会运行报错
内容的提问来源于stack exchange,提问作者Srinath Sureshkumar
相关产品推荐
相关产品推荐

