首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Mac)从另一个shell脚本调用shell脚本会在运行java时提供一个访问错误。

(Mac)从另一个shell脚本调用shell脚本会在运行java时提供一个访问错误。
EN

Stack Overflow用户
提问于 2019-07-23 20:10:28
回答 1查看 81关注 0票数 0

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

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

现在,这需要手动打开所有窗口,使用"cd“命令到达正确的文件夹,然后运行java命令,所有这些都是手动的。我想让这个过程自动化。

首先,我编写了一个shell脚本(launch_language)来调用正确文件夹中的java文件。运行此命令的本身工作正常,并按预期运行程序

代码语言:javascript
复制
#!/bin/bash
java -jar mercury/language-packs/language-connector/target/language-connector-1.12.7.jar

到现在为止还好。

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

代码语言:javascript
复制
#!/bin/bash
open -a Terminal.app launch_language

运行此脚本将按预期打开一个新的终端窗口,并启动launch_language脚本。然而,当这种情况发生时,终端会给出以下错误:

代码语言:javascript
复制
Error: Unable to access jarfile mercury/language-packs/language-connector/target/language-connector-1.12.7.jar

对于为什么以这种方式调用launch_language脚本会导致这个错误发生,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-23 20:31:10

您在脚本中使用的是相对路径,所以只有在您从特定目录运行它时,它才能工作。

可能的解决办法:

  1. cd /FULL_PATH_TO_DIR命令之前添加java -jar
  2. 提供jar的完整路径(/FULL_PATH_TO_DIR/mercury/language-packs/language-connector/target/language-connector-1.12.7.jar)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57171503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档