在Mac上双击运行.sh和.bat文件的相应方法是什么?

25

我正在分发一个Java程序,希望双击文件即可运行

java -cp MyProgram.jar;MyLib.jar my.program.Main

在Windows上,我只需分发一个.bat文件,在*nix上是可执行的.sh文件。问题是,双击.sh文件在Mac上只会在文本编辑器中打开它。我该怎么做才能在Mac上运行它?


另一个有用的相关问题是https://dev59.com/DGYq5IYBdhLWcg3w8lJo。 - Edward
4个回答

44

在 macOS 上,有一种特定的扩展名可以通过双击执行 shell 脚本:就是 .command


9
这是一个相当老的问题,但对于那些像我一样遇到 <file>.command 无法执行,因为您没有适当的访问权限。 错误的人,可以在终端上执行以下命令来解决问题: chmod u+x /path/to/file.command 。这应该可以消除该问题。 - asherbret
1
@user2016436 我不想添加 chmod u+x 来运行文件,因为可执行文件将在客户端上运行。我该怎么办? - Mr_Green

5

针对 Mac 上的 Java 应用程序,你应该使用苹果公司提供的 Jar Bundler 工具(位于开发者工具/应用程序/实用工具文件夹中;实际上是 /usr/share/java/Tools/Jar Bundler 的符号链接)。它可以帮助你创建一个真正的 OS X 双击可执行应用程序,包括设置偏好选项,例如使用 Mac 工具栏、JVM 版本、图形系统、OS X 应用程序元数据和类路径/资源。


3

您可以使用 .sh(Shell 脚本),毕竟 MacOSX 是 Unix!


1

关于使用Jar Bundler工具的答案是正确的,但如果您想使用.sh文件,请确保使用CHMOD将Unix权限设置为755,同时确保第一行包含Mac OS X默认安装的shell路径。此外,请注意即使+x位已设置,它仍可能会询问用户是否要打开或运行它。


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