以jar包方式启动

嗨,大家好~ ,在工作中,一个项目要部署到服务器上,我自己在工作中常见的部署tomcat和jar包方式部署的两种方式。(其他的有待挖掘)

啊啊啊,公司正在做一个新的平台,所以最近疯狂在服务器上部署项目~

今天介绍的是一个以vertx体系写的maven项目,将项目以jar包的方式启动 部署到服务器上面


部署步骤:

1.首先要在服务器上将项目所需要的环境安装好,例如 jdk, redis,mqtt, zookpper, vertx 等等等....

2.回到项目上,需要改动  pom.xml   和  log4j2.xml   文件

pom.xml

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <!-- MUST ADD -->
                    <archive>
                        <manifestEntries>
                            <Main-Class>io.vertx.core.Launcher</Main-Class>
                            <Main-Verticle>com.seaway.open.value_added_server.open_value_added_agent.Runner</Main-Verticle>   <!-- 项目的入口路径-->
                        </manifestEntries>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>/home/open/resources/libs/</classpathPrefix>      <!--服务器上jar的路径-->
                        </manifest>
                    </archive>

                    <excludes>
                        <exclude>log4j2.xml</exclude>
                        <exclude>open_value_mobiledata.yaml</exclude>      <!--自己的配置文件名称-->
                    </excludes>
                </configuration>
            </plugin>

log4j2.xm

<configuration status="error">

<properties>
        <property name="LOG_HOME">/home/open/resources/open_value_added_agent_mobiledata/logs/</property>      <!--在服务器中日志路径-->
        <property name="BACKUP_HOME">/home/open/resources/open_value_added_agent_mobiledata/logs/backup</property>   <!--在服务器中的日志路径-->
        <property name="SERVER_NAME">open_pay_front_agent</property>       <!--在服务器中日志名称--></properties>

3. 将项目打jar包,在下用的工具是eclipse

右键项目----》Run  As ----》Maven  clean ----》Maven  install

(可以将jar文件用好压打开,然后把不需要的文件删掉,不删也行)

4.在服务器上面mkdir 一个和项目名称一样的文件夹。然后在文件夹下建立以下几个目录

config   存放项目配置文件 ,(一些软件的路径端口,要填服务器上安装的。例如:mqtt,redis等)
bin      存放执行文件(bin里面的文件要用 touch命令创建. eg: touch xxxx.sh)
logs     存放日志
jar      存放项目打成的jar
libs     项目所需要的所有的jar包( 把maven上的jar包复制到本地,然后rz到服务器上libs。         eg: run as -->maven build
         dependency:copy-dependencies   ,输入命令  观察控制台可以查看jar都复制到本地哪里了 )

5. bin下面的启动脚步(要会写,不会就copy下面的,替换掉相应的东西),要写一下子。写完以后启动项目,观察日志,报错就检查下。结束~

eg:简单的启停例子 之一

cat   startAndstopxxx.sh

if [ $# -lt 1 ]
then
        echo "Usage: <$0> start/stop"
        exit 1
fi

if [ "$1" == "start"  ] ; then        <!-- java -jar /项目jar路径   start /log4j2.xml路径   -cfg /配置文件   ,copy的时候,本条注释删掉-->
        java -jar /home/open/open_task/jar/original-get_taopiaopiao_soonShows-1.0.jar  start -Dlog4j.configurationFile=/home/open/open_task/config/get_taopiaopiao_soonShows/log4j2.xml -cfg /home/open/open_task/config/get_taopiaopiao_soonShows/taobao_soon_shows_server.yaml
elif [ "$1" == "stop"  ] ; then
        PROCESS=`ps -ef|grep "get_taopiaopiao_soonShows"|grep -v grep|grep -v PPID|awk ‘{ print $2}‘`
        for i in $PROCESS
        do
                echo "Kill the get_taopiaopiao_soonShows process [ $i ]"
                kill -9 $i
        done
else
        echo "Usage: <$0> start/stop"
        exit 1
fi

eg:简单的stop的例子 之二

cat   stopxxx.sh

#NAME=$1
NAME=get_taopiaopiao_soonShows       <!--项目名称,copy的时候,本条注释删掉-->
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk ‘{print $2}‘`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "---------------"

eg: 简单的启停的例子 之三

cat   startAndstopxxx.sh

#!/bin/sh

DateTime=`date "+%Y%m%d%H%M%S"`
AppName=‘open_value_added_agent‘

JAVA_HOME=/home/open/jdk8u172-b11
HOME=/home/open/resources

#MAIN_PATH=com.seaway.dept3.kc.main.ZjpayProcess

#classpath=‘‘
#for jarpath in `ls $HOME/libs/*.jar`
#do
#classpath=$classpath:$jarpath
#done
#CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

case "$1" in
start)

echo "start $AppName"

#java -jar -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Xloggc:/home/zjpaySvr/zjpay_process_svr/logs/gcc.log  -XX:+UseParNewGC  -XX:+UseConcMarkSweepGC  -XX:+UseTLAB  -XX:NewSize=128m  -XX:MaxNewSize=128m  -XX:MaxTenuringThreshold=0  -XX:SurvivorRatio=1024  -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=60 -cwd $HOME/$AppName/service -user $USER -home $JAVA_HOME -pidfile $PID_FILE -errfile $TMP_DIR/$AppName$DateTime.err -cp $CLASSPATH  $MAIN_PATH
java -jar  -Xms256m -Xmx256m -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m $HOME/$AppName/$AppName-1.0.0.jar -Dlog4j.configurationFile=$HOME/$AppName/log4j2.xml -cfg $HOME/$AppName/$AppName.yaml &

echo "Result: $?"
exit $?
;;

stop)

echo "stop $AppName"
for i in `ps -ef |grep java | grep "$AppName" | grep -v grep | awk ‘{print $2}‘`
do
echo $i
if [ ! -n $i ];then
# rm -rf $PID_PATH_NAME
echo -e "\033[32m $i has been killed \033[0m"
# return 0;
else
echo -e "\033[33m $i will be killed by force! \033[0m"
kill -9 $i
# rm -rf $PID_PATH_NAME
# return 0;
fi
done

echo "Result: $?"
exit $?
;;

*)
echo "Usage ./$AppName.sh start/stop"
exit 1;;
esac

多加尝试,加油~

原文地址:https://www.cnblogs.com/PinkPink/p/9618372.html

时间: 2024-10-11 20:13:51

以jar包方式启动的相关文章

Spring Boot 以 jar 包方式运行在后台

spring-boot jar 包方式启动: 首先,为了防止和常用的 Tomcat 8080 端口冲突,将 Spring-boot 项目的端口号设置为 9090. 具体方法:在 application.properties 文件里写 server.port=9090. 使用 maven 命令:clean package 打包. 放到服务器上一个合适的位置. 使用 Java -jar spring-boot01-1.0-SNAPSHOT.jar 命令,启动 jar 包. 然后,在浏览器输入 htt

HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)

步骤一 若是,不会HBase开发环境搭建的博文们,见我下面的这篇博客. HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 步骤一里的,需要补充的.如下: 在项目名,右键, 然后,编写pom.xml,这里不多赘述.见 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 完成之后呢,编写好代码,对吧. 步骤二  HBase 开发环境搭建后的一些步骤(export导出jar包方式  或 Ant 方式) 这里,不多说,玩过大数据一段时间的博友们,

jmeter登录密码加密,使用jar包方式 12

现在很多的接口,例如登录密码会通过后台代码自动进行加密,但是在jmeter中如果我们没有引入加密过程的代码,就需要自己通过抓包的方式获取加密后的 密码才可以登录成功,为了方便我们可以通过引入代码的方式快速登录.下面简单介绍两种: 方式一:使用base64,函数助手方式 使用jmeter自带的加密方法 方式二:使用jar包方式,引入beanshell预处理 开发给我们一个.java包,在我们不确认自己可以一次性导入引用成功的前提下,可以先将需要的代码写入到eclipse进行校验,运行处正确的结果后

jar包后台启动--nohup篇

直接java -jar TestHttps-0.0.1-SNAPSHOT.jar的话是前段启动,但是窗口关闭之类的程序也就关闭了 我们可以nohup java -jar TestHttps-0.0.1-SNAPSHOT.jar & nohup是保证后台启动,就是关闭窗口程序任然在运行默认将日志打印到nohup,&产生作业编号就是那个 [1] 19649,nohup要和&一起用才能保证关闭窗口程序任然在运行 用jobs命令查看后台运行,fg + 编号调到前段来 ctrl + c就可以

百度语音,用jar包方式,maven有问题,浪费好长时间

后台管理应用页面点下载jar包1.aip-java-sdk-4.1.1.jar2.json-20160810.jar3.log4j-1.2.17.jar package afeng.util; import com.baidu.aip.speech.AipSpeech;import com.baidu.aip.speech.TtsResponse;import com.baidu.aip.util.Util;import org.json.JSONException;import org.jso

Jar包方式运行web项目

使用Maven进行打包 在自己的电脑终端中进入到pom.xml文件的目录中执行maven打包.命令为: mvn clean package 1 成功的标志为?上面显示BUILD SUCCESS成功打包成功后,我们可以在target目录下看见该项目的jar包 ?记得在target目录下运行 jar SpringBoot-Test-1.0-SNAPSHOT.jar 1 ?然后出现上面说明成功运行jar包工程在浏览器中刷新http://localhost:8080/index.html成功访问 ? ?

Spring boot项目以jar包形式启动中文乱码

指定端口号启动,未指定文件编码.会出现控制台中文乱码 java -jar -Dserver.port=8080 xxx.jar 指定端口号,指定文件编码启动 java -Dfile.encoding=utf-8 -jar -Dserver.port=8080 xxx.jar 转自:https://blog.csdn.net/u013310075/article/details/81166312 原文地址:https://www.cnblogs.com/xyyou/p/11147439.html

springboot 打成jar包的启动和关闭脚本

start.sh: #!/bin/bashSERVER_NAME='stu'# jar名称JAR_NAME='stu-0.0.1-SNAPSHOT.jar'cd `dirname $0`BIN_DIR=`pwd`cd ..DEPLOY_DIR=`pwd`echo $DEPLOY_DIRCONF_DIR=$DEPLOY_DIR/conf SERVER_PORT=`sed '/server.port/!d;s/.*=//' conf/application.properties | tr -d '\

java项目打成jar包并部署到Linux服务器,以及在shell脚本中启动java程序

一.在eclipse中,将java程序打成可运行的jar包 1.只需要把src目录和lib目录下的第三方jar打包即可 2.选中这两个位置后,一路"next",然后"finish",生成jar包 3.生成项目结构的zip包 然后,把项目打成zip包,注意只选需要的程序目录结构和配置文件夹即可 4.点击"finish",完成zip包的压缩 5.把生成的jar包和zip包上传到linux服务器的程序安装目录(根据项目组不同,程序安装目录会不同,但是一