在Mac操作系统中打开终端并启动.jar文件?

4
我目前有一个用Java编写的小文本游戏,使用System.out.print();输出文本,并使用Scanner接收用户输入。
我已经编译了可运行的.jar文件,并使用IExpress创建了一个.exe文件,在执行时运行批处理命令java -jar "foo.jar"。虽然这不是分发游戏的最佳方式,但它是在Windows中快速将游戏分发给朋友进行测试的一种方法。
我想知道是否有类似于此的方法适用于OSX?我知道我可以编写一个shell脚本来打开终端并执行.jar文件,但如果将shell脚本和.jar文件分发到其他计算机上,它会起作用吗?每个人都需要对.sh文件授予“执行”权限吗?其中一些人不太懂技术,即使提到打开终端也会让他们失去玩游戏的兴趣。
所以,有没有办法为他们提供一个双击即可打开终端并运行我的.jar文件的东西?
提前感谢!

请参见https://dev59.com/tmoy5IYBdhLWcg3wo_ro - Chris Page
1个回答

1

以下是两种可能的选项(第一种可能不会打开终端,但我还是留在这里以防您找到一种方法来使用下面提到的JarBundler打开)

1 - 构建本机Java应用程序包和安装程序

答案有点双重性。OSX应用程序具有特定的目录结构,操作系统希望该结构处于就位状态,它们称为应用程序包(对于混乱的详细信息,请搜索“osx应用程序包程序员指南”)。 Jar Bundler是一个Ant任务,可以为您构建一个捆绑包,而无需理解捆绑包格式本身。

仅凭这些就足以让您将应用程序拖放到OSX dock上。 但是,更常见的是安装程序。 要构建安装程序,您需要构建DMG文件。 有关如何使用ant创建DMG文件的一些好文档可以在此处找到

这个方法的要点是创建一个磁盘映像,将其附加,将应用程序复制到其中,然后将其分离并压缩。典型的OSX安装程序是一个窗口,其中包含您的应用程序的副本和指向/Applications目录的符号链接。当安装程序窗口打开时,它会显示这两个项目,您通常会将应用程序拖到/Applications图标上,“安装”它(实际上只是将其复制到/Applications中)。

以下是我项目中与构建应用程序捆绑包以及构建DMG文件相关的Ant构建文件(都是Google Code链接)。它们不需要任何GUI工具。

这两个文件都有相当详细的注释。

但是,我有一种感觉,这不会像您想要的那样打开终端窗口(您可以尝试使用JarBunder中的stubfile选项来使其按照您的意愿执行)。

2-从您的Shell脚本创建应用程序捆绑包

这个链接向你展示如何将一个shell脚本打包成应用程序。

然后,你可以将应用程序捆绑成DMG文件,以简化用户的安装过程。DMG文件将保留执行文件属性,因此他们不需要手动chmod +x你的脚本。


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