如何将Jar包部署到服务器,注:启动命令有无nohup有很大关系

本文详细指导如何在IntelliJ IDEA中打包Java项目为Jar包,包括生命周期配置、路径查找、服务器部署、后台启动及日志查看。适合初学者快速上手。

1.首先在IDEA的右边,打开Maven框,在需要打包的项目下,打开LifeCycle,双击两下package即可。

2.直到下方出现红框中的字样,代表已经成功打包成Jar包。

3.找到被打包的项目最下面的target那栏,打开就会看到已打包成功的Jar包,在Jar包上按右键,按Copy Relative Path,复制Jar包路径

 4.随便打开一个文件夹,在红框的位置Ctrl+V,将刚刚复制的路径粘贴上去,并删掉 \(包名).jar,就可以按回车键得到Jar包所在位置

5.利用工具连接上服务器,把Jar包拖入你想放置的文件位置中,利用命令进入该文件位置,输入命令:nohup java -jar (包名).jar,如果启动报错。

就输入命令行:nohup java -jar (包名).jar --server.port=6668&

--server.port 指定运行的端口,会得到一传进程识别号,证明启动成功

 6.接着会得到红框中的一句话:nohup: ignoring input and appending output to 'nohup.out'

只需要接着输入查看日志命令:tail -f nohup.out

就可以得到成功启动的successful标识,以及相应的日志信息会打印在该界面。

 注:

1.部署Jar包,Java -jar命令只是是前台启动,控制台关了就没了,得 nohup 后台启动。

2.如果怎么启动都有报错,可以先用 ps -ef|grep java 查看运行中的进程,然后 kill -9 227243,(227243)是根据你在运行的Jar包对应的进程标识号修改,杀掉此Jar包,停止运行,然后进行上面的Jar运行命令,重新运行。

常用命令:

1.  查看多少行日志

        tail -n

2.

  • 启动防火墙
    sudo systemctl start firewalld
  • 重启防火墙
    sudo systemctl restart firewalld
  • 停止防火墙
    sudo systemctl stop firewalld
  • 查看防火墙已开启的端口
    sudo firewall-cmd --list-ports
  • 添加新的端口
    sudo firewall-cmd --zone=public --add-port=81/tcp --permanent
  • 添加连续的端口
    sudo firewall-cmd --zone=public --add-port=82-85/tcp --permanent

    注意:添加完端口要生效的话,必须重启防火墙

  • 关闭端口
    sudo firewall-cmd --zone=public --remove-port=81/tcp --permanent

### 部署JAR到远程Linux服务器并运行的步骤 #### 1. 准备远程服务器环境 确保远程服务器已经安装了Java运行环境(JRE或JDK),可以通过以下命令检查Java是否已安装: ```bash java -version ``` 如果未安装Java,可以通过以下命令安装OpenJDK: ```bash sudo apt update sudo apt install default-jdk ``` #### 2. 配置SSH连接 在部署过程中,需要通过SSH连接到远程服务器。可以使用`ssh`命令进行连接,例如: ```bash ssh username@remote_server_ip ``` 如果需要在Jenkins中部署,可以安装并配置**Publish Over SSH**插件,该插件允许Jenkins通过SSH将文件传输到远程服务器并执行命令[^1]。 #### 3. 上传JAR到远程服务器 可以通过`scp`命令将本地的JAR上传到远程服务器,例如: ```bash scp yourfile.jar username@remote_server_ip:/path/to/destination ``` 在Jenkins中,可以通过配置**Publish Over SSH**插件,设置远程服务器的SSH连接信息,并在Jenkins任务中添加文件传输步骤,将构建好的JAR上传到远程服务器[^1]。 #### 4. 编写并执行启动脚本 在远程服务器上,可以编写一个Shell脚本来启动JAR。该脚本通常括停止已有进程、启动新进程等操作。以下是一个示例脚本: ```bash #!/bin/sh RESOURCE_NAME=yourfile.jar tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 5 tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi nohup java -jar ./$RESOURCE_NAME > nohup.out 2>&1 & echo $! > tpid echo 'Start Success!' ``` 该脚本首先检查是否已有运行的JAR进程,如果有则停止该进程。随后启动新的JAR进程,并将日志输出到`nohup.out`文件中,确保即使关闭终端,程序仍然运行[^4]。 #### 5. 配置Jenkins任务 在Jenkins中,可以配置一个自由风格的项目,并在构建后操作中选择**Send files or execute commands over SSH**,设置远程服务器的SSH连接信息,并上传JAR到指定目录。随后可以执行上述脚本启动JAR[^1]。 #### 6. 验证部署 可以通过以下命令检查JAR是否成功运行: ```bash ps -ef | grep yourfile.jar ``` 同时,可以查看`nohup.out`文件以获取应用程序的日志输出: ```bash tail -f nohup.out ``` ### 示例代码 以下是一个完整的示例脚本,用于停止已有进程并启动新的JAR: ```bash #!/bin/sh RESOURCE_NAME=yourfile.jar tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 5 tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi nohup java -jar ./$RESOURCE_NAME > nohup.out 2>&1 & echo $! > tpid echo 'Start Success!' ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值