shell运行java程序,实现快速开发部署

一、概述

  在实际开发中,我们写好的代码,往往打成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程序

三、正式测试

  服务器端做如下规划:

  

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

①准备对应目录

  

②准备SpringBoot项目

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

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

  

第二步:

  

第三步:

  

第四步:

  

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

  

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

⑤编写shell脚本启动该程序

#!/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}

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

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

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

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

 将对应class提交至服务器!

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

原文地址:https://www.cnblogs.com/rmxd/p/11431621.html

时间: 2024-08-25 02:38:53

shell运行java程序,实现快速开发部署的相关文章

使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了. 首先说说我对公众号后台的简单需求: 读者可以方便的获取历史文章 可以通过关键字查找文章 可以通过发表日期查找文章 基于这样的需求,也基于我的公众号可用的接口(由于是没有微信认证的订阅号,可用接口少得可怜),故设计了如下的实现方案: 后台用一个数据源保存所有文章的信息,具体的字段包含了微信自动回复所需要的必

JAVA设置环境变量和在DOS下运行java程序

在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http://blog.sina.com.cn/s/blog_639403840100i5rt.html 下面先来了解一下什么是dos吧 dos 我们使用计算机接触最频繁的就是DOS.DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软

使用命令行运行Java程序

我现在身边有好多人在学习java,只要一提到学习java语言,我们马上想到的工具是eclipse,MyEclipse,NetBeans等等. 也许是我们用惯了vc,对集成开发环境有太多的依赖.但是,我个人觉得,对于一个开发人员有必要熟悉各种开发工具,更要尝试最原始的开发工具,即命令行. 同时我还发现用命令行更对java的语法有更深刻的理解,而不是仅仅停留在背诵记忆的层次上. 我们先介绍一下常用的命令: ①cd命令---切换目录:   e.g. cd src ②javac命令---编译java源程

如何在linux下安装jdk并运行java程序

一.进入root 大家可以看到我这里用的是CentOS 6.5 系统 二.测试网络与YUM是否可用 1.测试网络 ping www.baidu.com,如下图就是通了 参考: 一.JDK安装1.linux下 yum直接安装:https://blog.csdn.net/youzhouliu/article/details/511831152.安装包安装(如果linux有网也可以去下或通过windows传输):(1)https://www.cnblogs.com/zeze/p/5902124.htm

关于cmd下运行java程序遇到的小问题

关于JDK和JRE: JDK全称是Java Development Kit,是java语言的软件开发工具包,它包含了java的运行环境和开发工具. JRE全称是Java Runtime Environment,即java运行环境.也就是说JRE是包含在JDK里面的. 如果你只安装了jre,那么你只能运行已经编译好的字节码文件,即.class文件.如果是java源文件的话,就需要安装jdk,利用jdk中的javac将.java文件编译成.class字节码文件,然后利用java.exe解释编译好的.

mac终端运行java程序

以前都在Windows环境下开发java,今天在mac上配置了java环境,结果测试运行hello world的时候竟然出错, sudo javac helloworld.java能通过,sudo java helloworld.class竟然报错 --> ClassNotFound ??? Google才发现 mac终端运行java程序需要带上完整包结构 首先回到包的根路径 包路径:/java/com/test/src/helloworld.class cd ./java sudo java

1.配置EditPuls-编译和运行java程序

1.工具>配置自定义工具 2.添加工具>程序 1).编译java程序 2).运行java程序

EditPlus配置编译运行Java程序

打开EditPlus,在菜单栏中依次点击Tools和Configure User Tools...,如下图所示: 修改组名 编译Java程序 点击OK即可: 运行Java程序 过程与第三步类似,但配置如下: 至此,EditPlus就算是配置完成了,在Tools中出现如下图标: public class HelloWorld{    public static void main(String[] args)    {        System.out.println("Hello World&

用Eclipse编写运行Java程序

1.选择一个空的文件夹,作为workspace工作空间,用来存放你以后用eclipse写的Java程序. 2.新建java项目:File->new->java project 3.完成创建后,在src上单击鼠标右键 new->class 4.这时候就可以在主窗体编写代码了 5.按run  as   java  application,即可运行. 用Eclipse编写运行Java程序,布布扣,bubuko.com