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下java程序的start.sh启动脚本中classpath中载入了好多jar包,脚本启动后进程名特别长,不方便查看