我正在尝试在我的 docker 容器中依次运行两个 java 应用程序。 在我的 dockerfile 中,我已指定 invoker.sh 作为入口点。
ENTRYPOINT ["sh", "/opt/invoker.sh"]
然后我使用这个脚本运行两个 jar 文件。
#!/bin/sh
java -jar loader.jar
java -jar service.jar
但这不起作用。它给出了
Error: Unable to access jarfile javaimpl-loader.jar
并且仅执行service.jar。当我尝试 echo $(ls)
时,它显示两个 jar 文件都在那里。
但是如果我将脚本更改为
#!/bin/sh
echo $(java -jar loader.jar)
java -jar service.jar
然后两个 jar 都可以工作。为什么我不能使用第一个脚本。非常感谢任何有关此问题的帮助。
最佳答案
看来第一个示例被视为单行,您可以使用它。另外,我更喜欢 bash
而不是 /bin/sh
。就像,
#!/usr/bin/env bash
java -jar loader.jar && java -jar service.jar
关于java - 如何从 shell 脚本顺序运行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60667823/