windows Linux下Java程序的启动Shell脚本
来源:互联网 发布:弄璋乎弄瓦乎 编辑:程序博客网 时间:2024/06/07 05:12
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的主类名。
0 0
- windows Linux下Java程序的启动Shell脚本
- 【Shell】 Linux下启动java程序的通用脚本sh
- linux下shell脚本启动java程序jar包
- Linux下启动Java程序的启动脚本编写
- linux下的java程序脚本启动程序
- linux下运行java程序的shell脚本
- 一个启动Java程序的shell脚本
- 简单的linux下shell启动脚本
- 不错的linux下通用的java程序启动脚本
- 不错的linux下通用的java程序启动脚本
- 不错的linux下通用的java程序启动脚本
- 不错的linux下通用的java程序启动脚本
- Linux下启动java程序的通用脚本sh
- Linux下启动java程序的通用脚本sh
- linux下启动java程序的通用脚本
- linux下启动java程序的通用脚本2
- Linux下启动java程序的通用脚本sh
- Linux平台下启动java程序的脚本编写
- Eclipse与MyEclipse的区别
- HBase数据迁移至Hive
- php调用云片网接口发送短信实例
- java实现HTTP的post请求 json格式中文乱码问题
- 【Netty第二章】 第一个Netty程序
- windows Linux下Java程序的启动Shell脚本
- MySQL 主从复制 + MySQL Router 部署测试
- 解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
- 怎么用U3D画 平滑曲线(贝塞尔曲线)
- Windows共享权限和相关管理
- surfaceView
- 360浏览器 parseInt 问题
- 软件注册的实现 delphi 源码
- 获取android手机当前网络链接IP的方法