脚本部署java的class_IDEA部署项目,并结合Shell脚本运行Java程序

本文介绍了如何使用IDEA将本地Java项目的classes目录与远程服务器关联,以便直接上传.class文件实现快速部署。通过编写Shell脚本,可以方便地在服务器上启动和管理Java程序,避免了反复打包和上传的过程,提高了开发效率。
摘要由CSDN通过智能技术生成

一、概述

在实际开发中,我们写好的代码,往往打成war包或jar包,通过winscp或其他软件将其上传至服务器,然而这样非常大的一个弊端就是不利于开发,为什么这么说呢?假如我们刚刚将springboot项目达jar包通过winscp部署在linux系统中,然而各种突如其来、意想不到的bug接踵而来,你在本地测试调试bug,难道你要一次又一次的打jar包,上传至服务器?我想你会疯了吧,哈哈,言归正传。

运行java项目的本质,就是让jvm运行.class文件(纯属个人理解,意思你懂就好),所以我们为何不尝试直接将本地classes目录与服务器关联呢,这样直接上传我们调试修改的.class文件即可,而强大的IDEA工具可以帮我们将本地classes文件与服务器的classes关联映射,这样更是方便了我们开发。这里可以参考:IDEA自动部署WEB工程至远程服务器(学习笔记)将本地classes关联映射服务器的对应目录。

二、测试准备

①使用IDEA将本地class与远程服务器的classes目录做关联映射(IDEA自动部署WEB工程至远程服务器(学习笔记))

②编写shell脚本运行java程序

三、正式测试

服务器端做如下规划:

1a02a156198352badf7d424d39aaa151.png

客户端IDEA只需要配置好目录关联映射即可:(IDEA自动部署WEB工程至远程服务器(学习笔记))当然,也可以通过手动将本地classes、依赖包lib

①准备对应目录

0ffaeec887f4222bc9c9bc1f45a9b252.png

②准备SpringBoot项目

7d297599fc527a8aa1c5229070fd1f66.png

③本地classes目录与服务器的目录做关联映射

第一步:按照如下步骤配置

7c0658cbc96265a7ae0b7fb5a7313a4d.png

第二步:

f08a896831fa627c29aa63d88246f275.png

第三步:

98b424503bb55210e8527ab55de165d3.png

第四步:

4297e0538ff02368854301e1a38fa794.png

最后一步:将整个classes目录上传至服务器

d68e8169f1db783b69b7a3d90b05ba8d.png

④上传工程依赖lib至对应的文件

⑤编写shell脚本启动该程序

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#!/bin/bash

#测试程序 运行脚本

#jdk路径

JAVA_HOME="/home/software/jdk1.8"

#项目的根目录

APP_HOME="/home/app/test"

#pid的输出目录

PIDFILE="${APP_HOME}/Application.pid"

#指定class目录

CLASSPATH=$APP_HOME/bin

for i in $APP_HOME/lib/*.jar;do

CLASSPATH="$CLASSPATH":"$i"

done

echo ${CLASSPATH}

MAINCLASS="com.test.demo.DemoApplication"

#后台运行程序

#nohup $JAVA_HOME/bin/java -classpath $CLASSPATH $MAINCLASS&

#运行java程序

$JAVA_HOME/bin/java -classpath $CLASSPATH $MAINCLASS

#将进程id写入文件

ps -ef | grep "Application" |grep -v grep|awk '{print $2}'>${PIDFILE}

View Code

⑥通过shell脚本启动该程序:sh start.sh

6b252ac77476ed9e040eb1a7069562db.png

⑦通过浏览器访问:192.168.229.128:8080/test?name=张三(这里确保服务器的8080端口开放)

06ec38bf0fbf8ff15c2ef2e506329c4f.png

当我们添加某个类或者修改某个些配置文件的时候,无需进行重新打包、上传服务器等这么麻烦的步骤了,我们只需将添加的class通过IDEA上传即可完成快速部署!

例如:我们新增一个类:TestController,只需要将对应的class提交至服务器即可完成部署!

413ebf6ec77ee6331defc945cffc7e29.png

将对应class提交至服务器!

8b1b957c2debf555c6716ee6a2f8901c.png

至此,我们通过shell脚本运行java程序已经完成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值