文件打开终端并在OSX中启动.jar?

时间:2012-03-26 20:01:14

标签: java macos shell terminal

我目前有一个用Java编写的小文本游戏,它使用System.out.print();输出文本,Scanner用来接收用户的输入。

我编译了runnable .jar并使用IExpress创建了一个在执行时运行批处理命令java -jar "foo.jar"的.exe。这不是分发游戏的最佳方式,但它是一种快速的方式将其分发给朋友在Windows中进行游戏测试。

我想知道OSX是否有相同的功能?我知道我可以编写一个shell脚本来打开终端并执行.jar文件,但是如果将shell脚本和.jar分发给其他计算机,它会工作吗?每个人都必须给.sh文件“执行”权限吗?其中一些人并不精通技术,甚至提到开放式终端也会让他们拒绝参加测试。

那么有没有办法让他们双击一下打开终端并运行我的.jar?

提前致谢!

1 个答案:

答案 0 :(得分:1)

这里有两个可能的选项(第一个可能不会打开终端,但我会离开这里,以防你通过下面提到的JarBundler找到方法)

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

答案有点双重。 OSX应用程序具有操作系统期望的特定目录结构,它们被称为应用程序包(谷歌的“osx应用程序包程序员指南”,用于杂乱复杂的细节)。 Jar Bundler是一个Ant任务,可以为您构建一个包,而无需您了解包格式本身。

仅此一项就足以让您将应用程序拖到OSX基座上了。但是,更常见的是安装程序。要构建安装程序,您需要构建DMG文件。关于如何使用ant can be found here创建此文档的一些很好的文档。

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

以下来自building an application bundle项目的相关Ant构建文件以及building a DMG file(两者都是Google代码链接)。它们不需要任何GUI工具。

这两个文件都有很多评论。

但是,我觉得这不会按照你的意愿打开终端窗口(你可以使用JarBunder中的stubfile选项让它做你想做的事。)

2 - 从shell脚本

创建应用程序包

This link向您展示了如何使用shell脚本创建应用程序包。

然后,您可以从应用程序包中创建DMG文件,以简化用户的安装。 DMG文件将保留执行文件属性,因此他们无需手动chmod +x您的脚本。