我是一个为客户做项目的前端开发人员。我们的后端团队为我提供了一些必须运行的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_language脚本。然而,当这种情况发生时,终端会给出以下错误:
Error: Unable to access jarfile mercury/language-packs/language-connector/target/language-connector-1.12.7.jar对于为什么以这种方式调用launch_language脚本会导致这个错误发生,有什么想法吗?
发布于 2019-07-23 20:31:10
您在脚本中使用的是相对路径,所以只有在您从特定目录运行它时,它才能工作。
可能的解决办法:
cd /FULL_PATH_TO_DIR命令之前添加java -jar/FULL_PATH_TO_DIR/mercury/language-packs/language-connector/target/language-connector-1.12.7.jar)https://stackoverflow.com/questions/57171503
复制相似问题