Linux部署Java程序并设置开机启动

1、先检查服务器是否已安装Java

java -version

2、先试试直接运行

java -jar /opt/tejianplatform/api/report-3.0.jar

注意:此时运行jar会自动找配置文件,如果application.yml和jar在同级目录,正常运行没问题

3、创建Linux服务文件

vim /etc/systemd/system/tejianapi.service

“tejianapi”即服务名称,后续启动、停止、查看日志文件都用此名称

4、编辑service

[Unit]
Description=tejian-platform-api
After=syslog.target

[Service]
Type=simple
ExecStart=/home/java/jdk1.8.0_441/bin/java -jar /opt/tejianplatform/api/report-3.0.250118.jar --spring.config.location=/opt/tejianplatform/api/application.yml
SuccessExitStatus=143
Environment="JAVA_HOME=/home/java/jdk1.8.0_441"

[Install]
WantedBy=multi-user.target

5、刷新配置

sudo systemctl daemon-reload

6、启动服务

sudo systemctl start tejianapi.service

7、查看服务状态

systemctl status tejianapi.service


下面介绍踩的一些坑:

1、ExecStart配置的Java安装目录
    一定要注意路径正确,先查看本机Java安装的地方,再配上去,可以用ls命令看是否存在

ls /home/java/jdk1.8.0_441/bin/java

2、ExecStart配置的Java配置文件

  使用服务启动时,默认不会加载同目录下的配置文件,此时就需要手动指定,要使用全路径

3、application.yml配置

  如果使用了日志配置文件,如“logback-spring.xml”,必须配置全路径

4、logback-spring.xml配置

  日志目录要配全路径,要不然会日志会存到根目录

5、设置权限

需要给Java和jar都设置权限

chmod +x /home/java/jdk1.8.0_441/bin/java
chmod +x /opt/tejianplatform/api/report-3.0.250118.jar

6、SELinux 或其他安全机制:如果系统启用了 SELinux,可能会导致权限问题。禁用 SELinux

setenforce 0

 

另,查看系统服务日志命令:

journalctl -u tejianapi.service -f
sudo journalctl -u tejianapi.service --since "2025-03-05 17:00:00" --until "2025-03-05 18:0:00"

 

posted @ 2025-03-05 17:31  IT王师傅  阅读(463)  评论(0)    收藏  举报