(Mac)从另一个shell脚本调用shell脚本会在运行java时出现访问错误

(Mac)从另一个shell脚本调用shell脚本会在运行java时出现访问错误,java,bash,shell,terminal,Java,Bash,Shell,Terminal,我是一个前端开发人员,为一个客户开发一个项目。我们的后端团队为我提供了几个必须运行的java脚本,这些脚本为应用程序提供数据。所有这些脚本都是从命令行运行的 我们被要求做的是打开几个终端实例(或者几个选项卡也可以),并在每个终端窗口运行一个脚本(调用java应用程序) 现在,这样做需要手动打开所有窗口,使用“cd”命令进入正确的文件夹,然后手动运行java命令。我想自动化这个过程 首先,我编写了一个shell脚本(launch_language)来调用正确文件夹中的java文件单独运行此命令效果

我是一个前端开发人员,为一个客户开发一个项目。我们的后端团队为我提供了几个必须运行的java脚本,这些脚本为应用程序提供数据。所有这些脚本都是从命令行运行的

我们被要求做的是打开几个终端实例(或者几个选项卡也可以),并在每个终端窗口运行一个脚本(调用java应用程序)

现在,这样做需要手动打开所有窗口,使用“cd”命令进入正确的文件夹,然后手动运行java命令。我想自动化这个过程

首先,我编写了一个shell脚本(launch_language)来调用正确文件夹中的java文件单独运行此命令效果良好,并按预期运行程序

#!/bin/bash
java -jar mercury/language-packs/language-connector/target/language-connector-1.12.7.jar
到目前为止,一切顺利

现在,我想编写另一个脚本,它将打开一个新的终端窗口,然后加载并运行这个工作脚本。好吧,那么:

#!/bin/bash
open -a Terminal.app launch_language
运行此脚本将按预期打开一个新的终端窗口,并启动launch_语言脚本。但是,当发生这种情况时,终端会给我以下错误:

Error: Unable to access jarfile mercury/language-packs/language-connector/target/language-connector-1.12.7.jar

关于为什么以这种方式调用launch_language脚本会导致出现此错误,您有什么想法吗?

您在脚本中使用的是相对路径,因此只有在从特定目录运行脚本时,它才会起作用

可能的解决办法:

  • cd/FULL\u PATH\u添加到
    java-jar
    命令之前的\u DIR
  • 提供jar的完整路径(
    /full\u path\u to\u DIR/mercury/language packs/language connector/target/language-connector-1.12.7.jar
  • 选项2对我来说非常有效。我在Finder中找到了默认文件夹,然后右键单击面包屑以从根目录复制确切路径。繁荣工作。谢谢