如何在Mac上双击运行shell脚本?

7

我已经创建了一个shell脚本在Mac上运行jar文件:

#!/bin/sh
java -Xmx512m -jar test.jar;

我将这个脚本重命名为“app.command”,以便双击即可运行。并且我已经对其应用了“chmod +x”命令以获得可执行权限。
现在,当我双击此脚本时,会出现“无法访问jar文件test.jar”的错误,但是通过终端运行此脚本时,jar文件可以正常运行! 请问有人能帮我解决在Mac上双击运行此脚本的问题吗?
1个回答

8
如果您从终端运行,您已经设置了工作目录,但如果您双击它,则可能不是这种情况。尝试在脚本中给出jar文件的完整路径。

1
@Curtis:你说得对。但是有没有办法克服这个问题呢?JAR文件可以放在任何地方,但我确定Shell脚本将与JAR文件放在同一个文件夹中? - Brad
不确定。我的Mac都在家里,我无法接触到它们。我知道在Windows中,有一种方法可以在创建应用程序的快捷方式时设置工作目录。也许在Mac上有类似的东西?您可能需要创建一个运行脚本的快捷方式,而不是直接双击脚本。 - Curtis
1
好的...我想现在的问题是:"我能获取当前运行的shell脚本的绝对路径并使用它吗?" - Brad
11
这可能会变得非常复杂,但是如果通过双击运行脚本(并且不是符号链接),cd "$(dirname "$0")" 应该有效。 - Gordon Davisson
1
@Gordon ... 非常感谢 .. 那么我该如何在我的脚本中使用它呢? :) ... 我对shell脚本一无所知。请给个例子? - Brad
3
请将以下命令作为脚本的第二行添加(即在 #!/bin/sh 之后),这样脚本中的其余部分(主要是 java 命令)将从脚本所在的目录中执行。 - Gordon Davisson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接