由于自己需要经常在Linux中执行java程序,根据网上资料,整理了这两个模板。

  • 开启java jar进程

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    #!/bin/bash
    
    # 设置要使用的 Java环境路径,可根据实际情况修改
    #JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
    #PATH="$JAVA_HOME/bin:$PATH"
    
    # 判断java环境是否存在
    JAVA_PATH=$(which java)
    if [ -z "$JAVA_PATH" ]; then
    	echo "not find java environment."
    else
    	echo "find java environment ,path: $JAVA_PATH"
    fi
    
    #项目名称
    PROJECT_NAME=Hello Java
    
    #定义jar所在路径
    JAR_PATH=/home/java_project/target/
    
    cd JAR_PATH
    
    #定义jar名称
    JAR_NAME=$(find -name "*.jar")
    
    #检查jar包是否存在
    if [! -f "$JAR_NAME" ]; then
    	echo "Error: $JAR_NAME not found."
    	exit 1
    fi
    
    #定义Java虚拟机参数(可根据实际情况调整)
    JAVA_OPTS="-Xmx512m -Xms256m"
    
    #定义日志文件名称
    APP_LOG="app.log"
    
    # 使用指定java环境执行jar包
    # nohup "$JAVA_HOME/bin/java" $JAVA_OPTS -jar $JAR_NAME > $APP_LOG 2>&1 &
    
    nohup java $JAVA_OPTS -jar $JAR_NAME > $APP_LOG 2>&1 &
    echo "$PROJECT_NAME started. Logs can be find in $APP_LOG."
    
  • 结束java jar进程

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    #!/bin/bash
    
    #项目名称
    PROJECT_NAME=Hello Java
    
    #定义jar所在路径
    JAR_PATH=/home/java_project/target/
    
    cd JAR_PATH
    
    #定义jar名称
    JAR_NAME=$(find -name "*.jar")
    
    PID=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
    
    if [ -z "$PID" ]; then
    	echo "$PROJECT_NAME is not running."
    else
    	echo "Stopping $PROJECT_NAME with PID: $PID"
    	kill -9 $PID
    fi