bash - 我的 Bash 脚本有问题

标签 bash executable-jar

他都, 我的 bash 脚本有问题。 那是我的代码:

#!/bin/bash
java -jar my_app.jar
echo "The present working directory is `pwd`"

如果我通过 ./script_name 执行它,它可以工作,但如果我双击它就不起作用,我得到这个错误:
“无法访问 jarfile my_app.jar”。
然后pwd输出不一样!!!

我的操作系统是 MacOSX,但我需要创建一个也适用于 Linux 的 bash 脚本。

最佳答案

我相信solution Shawn J. Goff 建议并由 Gordon Davisson 评论可以通过使用现代 bash 命令替换语法来改进。我假设脚本和 jar 在同一个文件夹中:

#!/bin/bash
java -jar "$(cd "$(dirname "$0")"; pwd)/my_app.jar"
echo The present working directory is $(cd "$(dirname "$0")"; pwd)

关于bash - 我的 Bash 脚本有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3675078/

相关文章:

bash - 具体来说,当您在终端中按下 Ctrl-C 时会发生什么?

regex - SED:在单引号后替换字符串

php 脚本在 Linux 启动时不执行

java - jar打包后如何设置SIKULI_HOME环境变量?

java - 如何从现有 Java 项目中提取主类?

java - 无法在正在执行的 JAR 上找到或加载主类

bash - 哪个词在文本文件中最常出现?

bash - 在脚本中执行 GNU Parallel

java - 应用程序可以在 Windows 上运行,但不能在 Linux 上运行

java - 导出多个 jar 文件 - 可扩展性问题