标准shell启动java程序_shell启动java程序

#!/usr/bin/env bash

BASE_DIR=$(pwd)

LIB="${BASE_DIR}/lib/"

JAVA_OPTS=" -Xmx2048m -XX:PermSize=64m -XX:MaxPermSize=512m -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=1024k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/mtdperf.hprof -server -Dfile.encoding=UTF-8"

START_CLASS="com.abc.cde.aaaserver"

nohup java ${JAVA_OPTS} -server -classpath "${LIB}/*:${LIB}/droolsRuntime/*:eiServer.jar" ${START_CLASS} &

如果用-jar,就不能用-cp(-classpath)

#!/bin/sh

BASE_DIR=$(pwd)

LIB="${BASE_DIR}/lib/"

JAVA_OPTS=" -Xmx2048m -XX:PermSize=64m -XX:MaxPermSize=512m -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=1024k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/mtdperf.hprof -server -Dfile.encoding=UTF-8"

START_CLASS="com.tencent.bugly.EiServer"

echo ${LIB}

for libfile in ${LIB}/*.jar ; do

if [ -f $libfile ] ; then

CLASSPATH=$libfile:${CLASSPATH}

fi

done

for libfile in ${BASE_DIR}/*.jar ; do

if [ -f $libfile ] ; then

CLASSPATH=$libfile:${CLASSPATH}

fi

done

CLASSPATH=${BASE_DIR}:${CLASSPATH}

nohup "java" ${JAVA_OPTS} -server -cp ${CLASSPATH} ${START_CLASS} &

使用nohup是为了避免账户注销发送的hup信号,会导致该账户调用的程序注销,使用nohup会忽略此信号。

语句最后的&表示该进程在后台运行

前台启动JAR

java -jar XXX.jar

指定启动内存大小

java -Xms1024m -Xmx1024m -Xmn1024m -server -jar boot.jar

后台启动JAR

java -jar xxx.jar &

SpringBoot 制定控制台的标准输出

java -jar xxx.jar > catalina.out 2>&1 &

catalina.out将标准输出指向制定文件catalina.out

2>&1 输出所有的日志文件

& 后台启动

指定启端口:

java -jar demo.jar --server.port=9090

启动脚本

#!/bin/sh

#功能简介:启动上层目录下的jar文件

#参数简介:

# $1:jar文件名(包含后缀名)

# 注意:jar文件必须位于startup.sh目录的上一层目录。

#启动参数

JAVA_OPTS="-server -Xms400m -Xmx400m -Xmn300m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xverify:none -XX:+DisableExplicitGC -Djava.awt.headless=true"

jar_name=$1

this_dir="$( cd "$( dirname "$0" )" && pwd )"

parent_dir=`dirname "${this_dir}"`

log_dir="${parent_dir}/logs"

log_file="${log_dir}/catalina.out"

jar_file="${parent_dir}/userapps/${jar_name}"

#参数个数<1或者参数空值时,中断执行

if [ $# -lt 1 ] || [ -z $1 ]; then

echo -e "\033[31m请输入要部署的jar包名称!\033[0m"

exit 1

fi

#日志文件夹不存在,则创建

if [ ! -d "${log_dir}" ]; then

mkdir "${log_dir}"

fi

#父目录下jar文件存在

if [ -f "${jar_file}" ]; then

#启动jar包;重定向标准错误输出到文件,丢掉标准输出

java $JAVA_OPTS -jar ${jar_file} 1>/dev/null 2>"${log_file}" &

exit 0

else

echo -e "\033[31m${jar_file}文件不存在!\033[0m"

exit 1

fi

启动

./startup.sh xxx.jar

.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值