linux java指定依赖jar,linux下运行javaSE项目-依赖外部jar文件

本文档提供了一个示例脚本,演示如何在Linux系统中指定依赖的JAR文件来运行Java SE应用程序。脚本通过设置JAVA_HOME、APP_HOME和APP_MAINCLASS等变量,并使用循环遍历lib目录下的所有JAR文件来构造classpath,确保Java程序正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值