1. 准备工作:更新系统并安装Java环境
在Debian系统上部署Java项目前,需先确保系统软件包最新,并安装合适的Java运行环境(JRE或JDK)。打开终端,执行以下命令:
sudo apt update && sudo apt upgrade -y # 更新系统软件包
sudo apt install openjdk-17-jdk -y # 安装OpenJDK 17(推荐,兼容大多数项目)
安装完成后,验证Java是否安装成功:
java -version # 应输出Java版本信息(如OpenJDK 17)
javac -version # 验证编译器是否可用(仅JDK安装后存在)
若需配置环境变量(方便全局使用Java命令),可编辑/etc/profile文件,添加以下内容(根据实际安装路径调整):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存后执行source /etc/profile使配置生效。
2. 构建Java项目:使用构建工具生成可部署文件
Java项目通常需通过构建工具(如Maven、Gradle)编译代码、管理依赖并生成部署包(JAR/WAR)。
mvn clean package,会在target目录下生成可执行的JAR文件(如your-app-1.0-SNAPSHOT.jar)。gradle build,生成物位于build/libs目录下。3. 传统部署:直接运行JAR或部署到Web服务器
将构建好的JAR文件上传到Debian服务器(可通过scp命令,如scp target/your-app.jar user@server-ip:/opt/java-app),然后执行:
java -jar /opt/java-app/your-app.jar
若应用需要后台运行,可添加-Dspring-boot.run.jvmArguments="-Xmx512m"(调整内存)或使用nohup:
nohup java -jar /opt/java-app/your-app.jar > app.log 2>&1 &
通过tail -f app.log查看日志,确认应用启动成功。
若项目是Web应用(生成WAR文件),需先安装Tomcat:
sudo apt install tomcat9 -y # 安装Tomcat 9
启动Tomcat并设置开机自启:
sudo systemctl start tomcat9
sudo systemctl enable tomcat9
将WAR文件复制到Tomcat的webapps目录(如/var/lib/tomcat9/webapps),Tomcat会自动解压并部署:
sudo cp /path/to/your-app.war /var/lib/tomcat9/webapps/
部署完成后,通过http://server-ip:8080/your-app-context-path访问应用(context-path为WAR文件名)。
4. 容器化部署:使用Docker简化环境管理
容器化部署可避免环境依赖问题,适合生产环境。
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
在项目根目录下创建Dockerfile(以Spring Boot项目为例):
FROM openjdk:17-jdk-slim # 使用轻量级OpenJDK镜像
WORKDIR /app
COPY target/your-app.jar /app/app.jar # 复制JAR文件到容器
EXPOSE 8080 # 暴露应用端口
ENTRYPOINT ["java", "-jar", "/app/app.jar"] # 启动命令
在Dockerfile所在目录执行:
docker build -t your-java-app . # 构建镜像(标签为your-java-app)
docker run -d --name java-app -p 8080:8080 your-java-app # 运行容器(映射端口)
通过docker ps查看容器状态,确认应用运行。
5. 可选:配置Nginx反向代理(提升访问体验)
若需通过域名访问或添加HTTPS,可配置Nginx反向代理:
sudo apt install nginx -y
编辑Nginx配置文件(如/etc/nginx/sites-available/default),添加以下内容:
server {
listen 80;
server_name your-domain.com; # 替换为你的域名或IP
location / {
proxy_pass http://localhost:8080; # 转发到Docker容器或Tomcat
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
保存后重新加载Nginx:
sudo systemctl reload nginx
现在可通过http://your-domain.com访问应用。
注意事项
systemd管理Java进程(而非nohup),或通过Docker Compose编排多个服务(如应用+数据库)。