java - 如何从 shell 脚本顺序运行 jar 文件

标签 java linux docker sh

我正在尝试在我的 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/

相关文章:

docker - 无法停止或删除Docker中的容器,显示权限被拒绝

amazon-web-services - 使用beantalk从正在运行的docker容器中在主机EC2实例上安装目录

java - Spring Cloud 与 Docker Swarm 和 Kubernetes 等编排工具的组合

java - Swift vs Java - 填充大数组的速度

java - IntelliJ 组织导入自动添加不起作用

linux - 如何使用 awk 只替换第二个实例一次

linux - 如何通过本地代理允许 curl ?

java - 保存后图像未添加到图库

java - 使用 hibernate 和 maven 从数据库生成 Java 类 - AnnotationConfiguration 丢失?

linux - 为什么我编译的bash(3.8M)比我的系统提供的bash(937K)大?