背景
CLI代码
public void Cli(String[] args) {
if (args.length > 0) {
// 运行方式 java -jar java-demo-1.0-SNAPSHOT.jar 2023-09-30 /opt/maven-update.txt
// 获取用户自定义的时间和文件路径
String timeText = args[0] + " 11:11:11.000000000";
Timestamp userInputTime = Timestamp.valueOf(timeText);
gzFileFinder.setUserInputTime(userInputTime);
String filePathText = args[1];
String[] array = filePathText.split("/");
folderPathText = array[1];
fileNameText = array[2];
} else {
System.out.println("No valid option specified. Use -h for help.");
System.exit(0);
}
}
脚本代码
#!/bin/bash
# 检查参数数量是否正确
if [ $# -ne 2 ]; then
echo "Usage: $0 <YYYY-MM-DD格式的开始日期> <文件路径>"
exit 1
fi
# 获取输入参数
start_date=$1
file_path=$2
# 执行 Java JAR 文件
# 报错 应指定java的绝对路径
java -jar /opt/ossm/packages/svs/maven-update/java-demo-1.0-SNAPSHOT.jar "$start_date" "$file_path"
给运行权限
chmod +x maven-update.sh
去掉换行符
tr -d '\r' < maven-update.sh > maven-update.sh
sed -i 's/\r//' maven-update.sh
以上命令二选一即可
报错原因:在windows系统中,默认的换行符是\r\n,而在Linux中则是\n,所以需要将\r去掉
运行
./maven-update.sh 2023-09-30 /opt/maven-update.txt
报错
当前目录下不存在java
所以要指定java的绝对路径 就可以运行(大概是因为之前装jdk没有指定path)
#!/bin/bash
# 检查参数数量是否正确
if [ $# -ne 2 ]; then
echo "Usage: $0 <YYYY-MM-DD格式的开始日期> <文件路径>"
exit 1
fi
# 获取输入参数
start_date=$1
file_path=$2
# 执行 Java JAR 文件
/opt/soom/deps/jre17/bin/java -jar /opt/ossm/packages/svs/maven-update/java-demo-1.0-SNAPSHOT.jar "$start_date" "$file_path"