linux使用.sh文件启动.jar文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux使用.sh文件启动.jar文件?相关的知识,希望对你有一定的参考价值。

在Windows里的MyEclipse把程序导出成.jar文件,需要放在Linux系统用.sh文件启动。JDK环境已经安装。

参考技术A linux下执行jar文件方法:命令行下进入文件目录,执行java -jar file.jar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java -jar /file路径/file.jar,这样在桌面双击即可打开该jar文件 参考技术B 在jar同目录下创建 start.sh文件内容如下:
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
$JAVA_HOME/bin/java -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -jar test.jar >/dev/null 2>&1 &
JAVA_HOME="linux下jdk的安装目录"
test.jar=需要运行jar文件
linux授权:chmod u+x start.sh
启动执行文件:./start.sh

linux开机启动jar

#添加开机启动命令:

##chmod  +x start-all-jar.sh

##chkconfig --add start-all-jar.sh

##chkconfig  start-all-jar.sh on



============start-all-jar.sh执行文件==============

#! /bin/sh

# chkconfig: 2345 11 80

# description: start and stop all jar 

#export DOCKER_IP=192.168.1.128

#DOCKER_IP=${DOCKER_IP:-0.0.0.0}

# Source function library.

. /etc/init.d/functions


RETVAL=0  

PATH_VERSION="0.0.1-SNAPSHOT"

nowtime=`date   +%Y-%m%d-%M%S`

today=`date   +%Y-%m%d`

###### jar 服务名称######

cd /data/es/openec/

ls -l  *.jar|awk  ‘{print $NF}‘> /etc/init.d/jarname.txt


#启动服务

function start_core(){

    if [ ! -d "/data/es/openec/logs" ]; then

  mkdir -p /data/es/openec/logs

    fi


    echo "#########################################################"  >> /data/es/openec/logs/start-${today}_out.log

echo  "############${nowtime} 启动服务###############"   >> /data/es/openec/logs/start-${today}_out.log


for i in `cat  /etc/init.d/jarname.txt`

do 

_SERVICE_NAME=/data/es/openec/${i}

#    _NAME_SUFFIXX="\>"

    _PROC_ID=`ps -ef|grep -i ${_SERVICE_NAME}|grep -v "grep"|awk ‘{print $2}‘`


    if [ ! $_PROC_ID = "" ]; then

        echo "${i} 已经启动"

echo "################" >> /data/es/openec/logs/start-${today}_out.lo

echo "${i} 已经启动" /data/es/openec/logs/start-${today}_out.lo

echo

exit

    fi

    exec java -Djava.security.egd=file:/dev/./urandom -jar /data/es/openec/${i} >> /data/es/openec/logs/${i}_${nowtime}_out.log &

echo "java -Djava.security.egd=file:/dev/./urandom -jar /data/es/openec/${i} " >> /data/es/openec/logs/start-${today}_out.log 

echo "启动服务${nowtime} : ${_SERVICE_NAME}"

echo 

sleep 1

    done

}


#关闭服务

function stop_core(){

 

 for jarname in  `cat  /etc/init.d/jarname.txt`

 do

  servicename=/data/es/openec/${jarname}

 _PROC_ID=`ps -ef|grep -i ${servicename}|grep -v "grep"|awk ‘{print $2}‘`

    if [ ! $_PROC_ID = "" ]; then

kill -9 $_PROC_ID

echo "#########################################################"  >> /data/es/openec/logs/stop-${today}_out.log

       echo  "############${nowtime} 启动服务###############"   >> /data/es/openec/logs/stop-${today}_out.log

echo  " 关闭服务${servicename} " >>  /data/es/openec/logs/stop-${today}_out.log

echo  " 关闭服务${servicename} " 

sleep 1

    fi

  done

}


function corestatus(){

 for j in  `cat  /etc/init.d/jarname.txt`

 do

  _servicename=/data/es/openec/${j}

 _PROC_ID=`ps -ef|grep  "${servicename}"|grep -v "grep"|awk ‘{print $2}‘`

    if [ ! $_PROC_ID = "" ]; then

echo  " 服务${_servicename} 正在运行 " 

echo

else

echo   " 服务${_servicename} 已经关闭 " 

echo

    fi

 done

}


#重启服务

function restart_core(){

    stop_core

    start_core 

}


function start(){ #启动服务的入口函数  

start_core 

}  

  

function stop(){ #关闭服务的入口函数  

stop_core

}  

  

#使用case选择  

case $1 in  

start)  

start_core  

;;  

stop)  

stop_core

;;

status)

corestatus

;; 

*) 

echo "error choice ! please input start or stop";;  

esac  

exit $RETVA  


以上是关于linux使用.sh文件启动.jar文件?的主要内容,如果未能解决你的问题,请参考以下文章

Linux shell脚本启动 停止 重启jar包

Linux下批量启动jar包的shell脚本

linux的.service服务开机自启动后为啥会自动停止

在mac中怎么运行.sh文件哦

从 ubuntu 中的 jar 文件启动 tomcat

linux下java程序的start.sh启动脚本中classpath中载入了好多jar包,脚本启动后进程名特别长,不方便查看