【问题标题】:Embedding a executable jar file in macOS Cocoa Application在 macOS Cocoa 应用程序中嵌入可执行 jar 文件
【发布时间】:2018-08-19 08:28:32
【问题描述】:

有人知道如何在 macOS Cocoa 应用程序中嵌入可执行 jar 文件吗?

我已经用 Java 编写了一个桌面应用程序的后端,我想将它嵌入到一个 macOS Cocoa 应用程序中,这样我就可以编写一个简单的 UI 并将最终产品放到 Mac App Store 中。后端非常独立,它可以成为 Cocoa 应用程序的黑盒。我只需要 Cocoa 应用程序在特定时间执行 jar 文件。

我发现这个问题似乎与我正在尝试做的事情非常相似:Embedding a Java runtime into a sandboxed Cocoa Mac app 但我担心这些信息现在可能已经过时了。我不想弄清楚如何嵌入 JRE 和 jar 文件,只是让我的应用程序无法通过 App Store 审查。有谁知道Apple是否仍然允许这种事情?我知道他们已经尽可能地远离 Java。

如果这种方法仍然有效,是否有人介意指导我如何在 Cocoa 应用程序中嵌入实际的 JRE,然后如何使用 NSTask 启动 jar 文件?

【问题讨论】:

  • 就标准而言,我不建议在项目结构中嵌入任何类型的可执行文件或二进制文件,除非绝对必要。您可以尝试使用配置文件或权利文件。如果可以的话,我会使用可可豆荚并将其添加到您的 podfile 中。如果您的应用未通过审核,这并不是世界末日。他们看不到您的代码。他们只是测试应用程序。我会推荐您在这里找到的解决方案 stackoverflow.com/a/18788230/6448167
  • 普通的 mac 上没有 Java,所以你肯定需要嵌入一些东西。我会使用 JNI 并将 Java 视为任何其他库(不调用某些可执行文件)

标签: java swift macos cocoa


【解决方案1】:

您可以将jar 文件作为资源包含在应用程序包中,并使用NSTask 执行它。

但是,这违反了 App Store 指南:

2.4.5 (viii) Apps should run on the currently shipping OS and may not use     
deprecated or optionally installed technologies (e.g. Java, Rosetta)

您仍然可以将您的应用分发为 Developer ID Application

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2012-02-08
    • 2011-06-18
    • 2011-10-22
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多