如何在服务器上部署一个java程序

如何在服务器上部署一个java程序?

一、在服务器上安装jdk环境

1.创建目录用于存放jdk文件

cd /usr/local

2.下载最新版oracle jdk22

wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz

3.解压

tar -zxf jdk-22_linux-x64_bin.tar.gz

4.配置环境变量

vim /etc/profile
// 在末尾处添加
export JAVA_HOME=/usr/local/jdk-22.0.1 #你安装jdk的路径,你的jdk版本(不一定是22.0.1版本)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

// 注意:JAVA_HOME、CLASSPATH、PATH必配置,最好5个变量都配置上。
// JAVA_HOME一定注意是你安装的jdk路径,是你安装的jdk22最新版本

5.刷新环境变量

source /etc/profile

6.验证java是否已安装成功

java -version

二、安装java程序

1.创建新的系统用户,用户名可自定义

useradd -m service

2.为 service用户创建密码

passwd service

3.登录到service用户

su - service

4.创建存放运行包的目录,这里以 ~/app 为例

mkdir ~/app && cd ~/app

5.下载jar包

wget https://xxxx.jar -O service.jar

6.创建工作目录

mkdir ~/.service2 && cd ~/.service2

7.创建 service配置文件,并在配置文件中填写配置内容

vim application.yaml

8.测试运行service

cd ~/app && java -jar service.jar --spring.config.additional-location=optional:file:$HOME/.service2/

三、将service设为在后台运行

1.切换到root

exit

2.创建xxx.service文件

vim /etc/systemd/system/xxx.service

3.填写xxx.service文件

[Unit]
Description=Hello Service

Documentation=https://docs.com

After=network-online.target

Wants=network-online.target

[Service]
Type=simple
User=USER
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar JAR_PATH --spring.config.additional-location=optional:file:/home/service/.service2/
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

4.重新加载 systemd

systemctl daemon-reload

5.运行服务

`systemctl start xxx

6.将服务设置为系统启动时自动运行

systemctl enable xxx

7.最后,可以通过下面的命令查看服务日志

journalctl -n 20 -u halo

相关推荐
蒂法就是我1 天前
有一张表,只有一个字段没有插入主建,能插入成功吗? 隐藏的 rowid除了在这里用到还在哪里用到了?
java
a努力。1 天前
字节Java面试被问:系统限流的实现方式
java·开发语言·后端·面试·职场和发展·golang
独自破碎E1 天前
Java中的Exception和Error有什么区别?
java·开发语言
齐鲁大虾1 天前
UOS(统信操作系统)如何更新CUPS(通用Unix打印系统)
linux·服务器·chrome·unix
小徐Chao努力1 天前
【Langchain4j-Java AI开发】08-向量嵌入与向量数据库
java·数据库·人工智能
qq_377112371 天前
从零开始深入理解并发、线程与等待通知机制
java·开发语言
小徐Chao努力1 天前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
ICT技术最前线1 天前
企业ICT传输系统资源管理:资源分配规范
运维·服务器·资源分配
JoannaJuanCV1 天前
自动驾驶—CARLA仿真(30)交通管理器(Traffic Manager)
java·redis·自动驾驶
元亓亓亓1 天前
考研408--计算机网络--day12--网络应用模型&DNS&FTP
服务器·计算机网络·考研·408