linux shell执行java代码带参数

 1、先写好main方法做测试

linux shell执行java代码带参数

/**
 * @apiNote 入口
 * @author hcj
 */
public class Main {
    public static void main(String[] args) {
        System.out.println("开始:"+DateUtile.nowDate());

        for (int i = 0; i < args.length; i++) {
            System.out.println("入参:"+args[i]);
        }

        System.out.println("结束:"+DateUtile.nowDate());
    }

}

2、idea 配置jar包导出路径

linux shell执行java代码带参数

linux shell执行java代码带参数

linux shell执行java代码带参数

linux shell执行java代码带参数

linux shell执行java代码带参数

linux shell执行java代码带参数

3、上传到linux服务器,编写测试shell脚本

#!/bin/sh  
echo ""  
echo "----------------------------------"  
echo "start at `date '+%Y-%m-%d %H:%M:%S'` ..." 

#由于本机没设置java_home的环境变量 先申明下
JAVA_HOME=/was/hcj/jdk1.8.0_11
CLASSPATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/lib/tools.jar

#CLASSPATH后面加上自己导出的jar包路径
CLASSPATH=${CLASSPATH}:/was/hcj/javaxiaochengxu.jar

#main方法所在的类路径
MAIN_CLASS=Main


echo $CLASSPATH 

#执行  后面是带的参数
${JAVA_HOME}/bin/java -classpath ${CLASSPATH} ${MAIN_CLASS} 1 2 3 4 5 6 7 8

echo "finished at `date '+%Y-%m-%d %H:%M:%S'` ..." 

注意: 给脚本加上执行权限    chmod 755 test.sh

执行脚本 ./test.sh

入参也可以在执行shell脚本的时候带上,比如

./test.sh 1 2 3 4 5

在shell脚本里$1 $2 $3 $4 $5 接收就是

linux shell执行java代码带参数