温馨提示×

Linux环境Java程序如何部署

小樊
44
2025-09-20 17:08:16
栏目: 编程语言

一、前置准备:安装Java运行环境(JRE/JDK)
在Linux环境下部署Java程序的基础是安装匹配的Java运行环境。若仅需运行Java程序,安装JRE(Java Runtime Environment)即可;若需编译或调试Java程序,则需安装JDK(Java Development Kit)
以Ubuntu/Debian系统为例,使用apt包管理器安装OpenJDK 11的命令如下:

sudo apt update && sudo apt install openjdk-11-jdk # 安装JDK(包含JRE) 

安装完成后,通过java -version命令验证安装是否成功,输出应包含Java版本信息(如openjdk version "11.0.xx")。

二、编译与打包Java项目
Java源代码需编译为字节码(.class文件)并打包为可执行文件(如JAR/WAR),才能在Linux上运行。常见方式有两种:

  1. 使用构建工具(推荐)
    若项目采用Maven/Gradle管理依赖,可通过以下命令一键编译、打包:
    • Maven项目:在项目根目录执行mvn clean package,生成的JAR文件位于target/目录(含Main-Class的MANIFEST.MF文件);
    • Gradle项目:执行gradle clean build,生成的JAR文件位于build/libs/目录。
  2. 手动打包(无构建工具)
    若项目为简单Java程序,可手动编译并打包:
    • 编译源代码:javac -d bin src/*.java(将src/目录下的所有.java文件编译到bin/目录);
    • 创建MANIFEST.MF文件:指定程序入口类(如Main-Class: com.example.Main),内容如下:
      Main-Class: com.example.Main 
    • 打包为JAR:jar cvfm app.jar MANIFEST.MF -C bin/ .(将bin/目录下的所有文件打包为app.jar)。

三、传输程序文件至Linux服务器
将打包好的JAR/WAR文件从本地传输到Linux服务器,常用**SCP(安全拷贝)**命令:

scp -i /path/to/private_key target/app.jar username@server_ip:/home/username/deploy/ 

其中:-i指定私钥文件路径(若使用密码登录可省略);username为服务器用户名;server_ip为服务器IP地址;/home/username/deploy/为目标目录。

四、配置Linux环境变量(可选但推荐)
为方便全局使用Java命令,可将Java路径添加到系统环境变量中:

  1. 编辑用户配置文件(如~/.bashrc~/.zshrc):
    nano ~/.bashrc 
  2. 在文件末尾添加以下内容(替换为实际Java安装路径):
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # JDK安装路径 export PATH=$JAVA_HOME/bin:$PATH # 添加Java到PATH 
  3. 使配置生效:
    source ~/.bashrc 

验证环境变量是否配置成功:echo $JAVA_HOME应输出Java安装路径。

五、启动Java程序
根据程序类型(JAR/WAR)选择不同的启动方式:

  1. 启动JAR程序
    使用nohup命令在后台运行JAR文件,并将日志输出到指定文件(避免终端关闭后进程终止):
    nohup java -jar /home/username/deploy/app.jar > /home/username/deploy/app.log 2>&1 & 
    其中:-jar指定JAR文件路径;>将标准输出重定向到app.log2>&1将错误输出合并到标准输出;&表示后台运行。
  2. 启动WAR程序(需应用服务器)
    若程序为WAR文件(Web应用),需将其部署到Tomcat、Jetty等应用服务器:
    • 安装Tomcat:sudo apt install tomcat9(Ubuntu/Debian);
    • 将WAR文件复制到Tomcat的webapps/目录:sudo cp /home/username/deploy/app.war /var/lib/tomcat9/webapps/
    • 启动Tomcat:sudo systemctl start tomcat9(Ubuntu/Debian)。

六、监控与维护

  1. 查看程序运行状态
    使用ps命令查找Java进程:ps -ef | grep java
    使用tophtop命令查看CPU/内存占用。
  2. 查看日志文件
    若使用nohup启动,可通过tail -f /home/username/deploy/app.log实时查看日志;
    若使用Tomcat,日志位于/var/log/tomcat9/目录(如catalina.out)。
  3. 停止程序
    若使用nohup启动,可通过kill命令停止进程(先通过ps -ef | grep java找到进程ID):
    kill -9 <process_id> 
    若使用Tomcat,可通过sudo systemctl stop tomcat9停止。

七、可选优化:配置反向代理(提升访问体验)
若需通过域名访问Java应用(如HTTP/HTTPS),可配置Nginx作为反向代理:

  1. 安装Nginx:sudo apt install nginx(Ubuntu/Debian);
  2. 编辑Nginx配置文件(/etc/nginx/sites-available/default),添加以下内容:
    server { listen 80; server_name your_domain.com; # 替换为实际域名或IP location / { proxy_pass http://localhost:8080; # 转发到Tomcat默认端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 
  3. 重启Nginx:sudo systemctl restart nginx

0