将 shell 脚本文件名作为命令行参数 java -jar /test.sh 传递并给出错误 错误:无法访问 jarfile /test.sh

将 shell 脚本文件名作为命令行参数 java -jar /test.sh 传递并给出错误 错误:无法访问 jarfile /test.sh
java -jar /test.sh --name trigger

Error: Unable to access jarfile /test.sh

test.sh 文件包含

#!/bin/sh
jar_name="-Dspring.config.location=application-test.properties somejarFileVersion_1.0" 
echo ${jar_name}

答案1

你那里有两个问题。

  1. java 尝试打开名为“test.sh”的 jar 文件。但该文件不是 jar,而是 shell 脚本。你想要的是输出用作 jar 文件名称的 shell 脚本的名称。所以你需要这样做:
java -jar $(bash ./test.sh) --name trigger
  1. 您的脚本也不会生成有效的 jar 文件名。它打印出 java 选项和 jar 文件名。你需要把这些-D....东西拿出来并把它们放在你最初的命令中。

相关内容