可以 运行 不知道 jar 文件名的 jar 文件吗

Can run a jar file without knowing the jar file name

谁能告诉我如何在不知道 Jar 的全名的情况下使用 java -jar 命令 运行 一个 jar 文件,我知道前缀但是 jar 文件的版本是动态的,所以我不想为每个部署更新我的 sh

 #!/bin/bash

PROJECT_HOME=/opt/services/testing-batchp
PROJECT_JAR=batch-1.0.8-SNAPSHOT.jar
[ -f /etc/environment ] && . /etc/environment

nohup java -jar -Dspring.config.location=${PROJECT_HOME}/config/ ${PROJECT_HOME}/${PROJECT_JAR}   >/dev/null 2>&1 &

我刚刚修改了变量 PROJECT_JAR="batch*.*-SNAPSHOT.jar" 但它不起作用。 这里 jar 的版本将在每次部署中发生变化。 请帮助

您可以尝试如下设置动态变量;

PROJECT_JAR=`ls -r batch*.*-SNAPSHOT.jar | head -1`

这必须完成任务。但是,请注意包含命令的刻度 (`) 以启用替换。

尝试使用以下方法执行脚本而不提及 jar 的发行版本。

 #!/bin/bash

PROJECT_HOME=/opt/services/testing-batchp
PROJECT_JAR=batch-*.*.jar
[ -f /etc/environment ] && . /etc/environment

nohup java -jar -Dspring.config.location=${PROJECT_HOME}/config/ ${PROJECT_HOME}/${PROJECT_JAR}   >/dev/null 2>&1 &

确保部署文件夹中只有一个有效的 jar。