【问题标题】:File to open terminal and start .jar in OSX?在 OSX 中打开终端并启动 .jar 的文件?
【发布时间】:2012-04-10 08:34:09
【问题描述】:

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

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

我想知道在 OSX 上是否有类似的东西?我知道我可以编写一个 shell 脚本来打开终端并执行 .jar 文件,但是如果将 shell 脚本和 .jar 分发到其他计算机,它会起作用吗?是否每个人都必须授予 .sh 文件“执行”权限?其中一些人并不精通技术,甚至提到打开终端会关闭它们以帮助我进行测试。

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

提前致谢!

【问题讨论】:

标签: java macos shell terminal


【解决方案1】:

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

1 - 构建原生 java 应用程序包和安装程序

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

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

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

以下是我项目中building an application bundlebuilding a DMG file 的相关Ant 构建文件(两者都是谷歌代码链接)。它们不需要任何 GUI 工具。

这两个文件都被大量评论。

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

2 - 从你的 shell 脚本创建一个应用程序包

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

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

【讨论】:

    猜你喜欢
    • 2017-12-16
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多