linux下运行javaSE项目-依赖外部jar文件
2014-07-31 22:13
417 查看
之前工作中只在linux 中运行过java web项目,没有在linux中部署过javaSE项目,前几天工作中遇到了这样的场景,参考了一下nutch、hadoop的启动脚本写了下面的一个启动脚本,shell脚本编程不是很熟悉如果有高手帮忙优化一下不胜感激。
启动脚本需要使用 ./start.sh start
ps:以下标红的需要按照自己实际情况修改
启动脚本需要使用 ./start.sh start
启动脚本需要使用 ./start.sh start
ps:以下标红的需要按照自己实际情况修改
启动脚本需要使用 ./start.sh start
#!/bin/bash #JDK所在路径 JAVA_HOME="/home/hadoop/software/jdk1.7.0_51" #Java程序所在的目录(classes的上一级目录) APP_HOME=/home/hadoop/myapp #需要启动的Java主程序(main方法类) (需要执行的代码需要达成jar包放到和其他lib同目录下)需要制定全类名 APP_MAINCLASS="com.crazywolf.myappmainclass" #拼凑完整的classpath参数,包括指定lib目录下所有的jar(需要把当前服务打成jar 和所有的依赖的第三方jar放在和此脚本同级目录的lib目录中) #目录结构如下 # ----start.sh 当前shell脚本 # ----lib 存放所有jar # --------- *.jar CLASSPATH="." for i in ./lib/*.jar; do CLASSPATH="$CLASSPATH":"$i" done echo $CLASSPATH #下面参数应该写 需要执行当前服务的用户名 RUNNING_USER=hadoop #java虚拟机启动参数(可以自己按照实际情况设置,我的app只是启动三个线程请求一个webservice服务获取数据然后保存而已,所以128M内存足够了) JAVA_OPTS="-ms256m -mx256m -Xmn128m -Djava.awt.headless=true -XX:MaxPermSize=128m" psid=0 #此方法用于判断当前服务是否已经启动 使用java 的 jps 查看当前系统中是否有当前服务的线程号(比如启动了myappmainclass服务 使用jps 命令就可以看到myappmainclass服务的进程号) checkpid() { javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAINCLASS` if [ -n "$javaps" ]; then psid=`echo $javaps | awk '{print $1}'` else psid=0 fi } start() { checkpid if [ $psid -ne 0 ]; then echo "================================" echo "warn: $APP_MAINCLASS already started! (pid=$psid)" echo "================================" else echo -n "Starting $APP_MAINCLASS ..." # JAVA_CMD="nohup java $JAVA_OPTS -classpath $CLASSPATH $APP_MAINCLASS >/dev/null 2>&1 &" nohup java $JAVA_OPTS -classpath $CLASSPATH $APP_MAINCLASS >../nohup.out 2>&1 & # su - $RUNNING_USER -c "$JAVA_CMD" checkpid if [ $psid -ne 0 ]; then echo "(pid=$psid) [OK]" else echo "[Failed]" fi fi } stop() { checkpid if [ $psid -ne 0 ]; then echo -n "Stopping $APP_MAINCLASS ...(pid=$psid) " kill -9 $psid # su - $RUNNING_USER -c "kill -9 $psid" if [ $? -eq 0 ]; then echo "[OK]" else echo "[Failed]" fi
相关文章推荐
- java项目打包成jar编写启动文件在windows和Linux下运行
- linux环境下运行jar包,依赖外部jar包
- java 打包项目为jar文件 并运行 外部配置文件
- Java GUI项目读取Jar内部外部文件 打包EXE 在没有java环境的电脑上可运行
- dos下编译运行java工程,并解决外部jar包依赖
- jar 不是内部或外部命令,也不是可运行的程序或批处理文件
- java项目生成"可运行jar"或"exe"的配置文件注意点
- 使用Maven管理依赖JAR文件,自定义项目布局,利用ANT生成不同的发布包
- 如何导出Java项目成为一个可以直接双击运行的jar文件的问题
- 【ant项目构建学习点滴】--(3)打包及运行jar文件
- java项目bat文件再运行时动态加载jar包
- Java项目导出为jar包,并在windows/linux下运行
- java项目打包成jar文件,在linux上执行出现 Invalid or corrupt jarfile XXXX.jar 错误
- Java项目打jar包及外部运行
- 导出含有图片的项目成jar文件后运行,图片不显示
- Java项目导出为jar包,并在windows/linux下运行
- Java项目导出为jar包,并在windows/linux下运行
- 手工编译、运行JavaSE项目,且此项目需要第三方jar包支持,且文件中有打包。
- 使用java命令行执行依赖外部jar包的class文件
- 运行代码在MyEclipse中将JAVA项目打包成JAR文件