Java程序多数情况下都会用到一些第三方的类库,如果仅用到几个jar文件,写到java命令里就好,但是依赖的jar文件很多的情况,写到java命令里就不好了,而且如果jar文件被替换,名字变了,就需要改java命令,所以最好在启动命令里不出现jar文件名。假设程序依赖的类库jar文件存放在同级的lib目录下,
简单的:
java -Djava.ext.dirs=lib -Djava.library.path=lib com.myapp.MyAppClass $*
这个写法绝大部分情况下都是正确有效的,但是曾经在启动一个用Spring框架写的程序时失败,总报告某些类找不到,实际上都已在lib目录下,原因不明。
下面换个方法,把依赖的jar文件都加入环境变量CLASSPATH,并且前面还增加了程序是否已启动的检查。
#!/bin/sh ############## #判断是否程序已启动 jappname='MyAppClass' javaps=`jps` i=0 psid=0 for psresult in $javaps do let cur=i%2 if [ $cur -eq 0 ]; then psid=$psresult else if (test "$psresult" = "$jappname") then echo "程序"$jappname"[pid="$psid"]已经启动!" exit 0 fi fi let i++; done #引入依赖类库到类路径 export CLASSPATH=. pathtmp='' for jarpath in `ls lib/*.jar` do CLASSPATH=$CLASSPATH:$jarpath done export CLASSPATH=$CLASSPATH java -server com.myapp.MyAppClass $*
附带一个关闭大量Java进程的脚本
服务器上部署的有JBoss和十几个Java程序,测试时经常需要把这十几个Java程序重启一遍,把Java进程全kill掉的话,JBoss也会被杀掉,但是JBoss不需要重启,一个一个用ps命令找pid,再挨个kill?程序太多,无法忍受。JDK里有个小工具叫jps,可以列出当前的Java进程,利用这个jps写了一个杀掉除指定进程之外的所有Java进程的shell脚本。
##################### #!/bin/sh # kill all java applications ##################### javaps=`jps` i=0 psid=0 for psresult in $javaps do let cur=i%2 if [ $cur -eq 0 ]; then psid=$psresult else if (test "$psresult" = "Main" -o "$psresult" = "Jps") then echo $psresult" not to be killed." else echo "kill "$psresult kill $psid fi fi let i++; done
Main是JBoss的主类名
引自:http://www.iteye.com/topic/411771
分享到:
相关推荐
linux系统java服务自启动shell脚本及服务cpu内存占用监控脚本
详细的linux shell脚本启动java代码类。
JAVA操作linux服务器,本文用于启动shell脚本并返回数据,简单易懂,可随时修改,1.连接服务器。2.输入服务器地址。3.输入用户名和密码。4.输入要执行的命令。
java项目启动脚本,启动、重启
linux下启动Java程序和杀死java进程shell脚本
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
前言:打包好的springboot项目,可以使用java -jar xxx.jar的方式启动。当出现多个springboot项目需要启动的时候,可以使用脚本启动的方式。这在springcloud项目的开发测试阶段尤为有用。以下展示启动脚本示例,过程...
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
脚本上有备注,将java项目打为jar包后,替换jar的包名为项目包名即可,log文件会自动生成,方便好用。
原因是程序放在root用户下,要runtime执行exp的话,root不认exp命令;找了好多资料,最后决定写个shell脚本;没接触过shell脚本,网上大部分例子都写的挺复杂的;贴个简单的,不带传参什么的;只是最简单的数据表的...
在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...
该资源包含启动springboot项目的shell脚本文件、以及日志分割必备的cronolog压缩文件
linux shell脚本启动java。 ---------------------------------------- Windows编辑的sh,在linux会报错: shell unexpected end of file 解决办法: vim test.sh :set fileformat=unix :wq ----------------------...
虽然写起动shell的频率非常不高。。。但是每次要写都要对付一大...#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用。 # #Author: tudaxia.
java的一个工具类,自动判断当前系统,若是window启动bat脚本,若是linux启动linux脚本,执行结果后台打印
主要介绍了Java调用linux shell脚本的方法,需要的朋友可以参考下
主要介绍了Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
该工具包可实现远程调用Shell脚本,可帮助您轻松实现java远程调用Shell脚本
linux 批量解压文件shell脚本 教程:https://www.bilibili.com/video/BV1Zi4y1C7rL?spm_id_from=333.999.0.0
shell启动jar程序的脚本,可以根据传入的参数"start"、"stop"、"restart"启动当前目录下的jar程序。