适用于Mac的Java应用程序

时间:2019-03-03 07:45:43

标签: java macos jar

我以前从未使用过Mac,所以我对在Mac上运行Java应用程序的最佳方法有疑问,因为我并没有在网上找到好的答案。

因此,我已经构建了一个Java应用程序,并且必须将其发送到使用mac的客户端。我知道您可以在终端上使用.jar在Mac上运行java -jar app.jar,但是我想要一个双击图标,客户端只能单击该图标并启动程序。

我看过一些教程,其中有人制作了一个.jar文件,您只需双击即可在MacOS中启动该程序,因此我不确定是否可以在MacOS中运行.jar只需双击即可将其作为可执行文件?

我看到的另一个解决方案是制作一个简单的.command文件,该文件将使用java -jar app.jar运行该应用程序。因此,我想知道从.jar文件为Mac生成可执行文件的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您的问题不是

答案是“取决于”。 “最佳解决方案”完全有可能只是向.jar文件发送带有调用说明的文件。

请查看Oracle文档:

  

Java Documentation Section 7: Self-Contained Application Packaging

     

7.1简介

     

Java打包工具提供对多种格式的内置支持   自包含的应用程序包。基本套餐是单   硬盘驱动器上的文件夹,其中包含所有应用程序资源和   JRE。您可以按原样重新分发该软件包,也可以构建一个   可安装的程序包(例如EXE或DMG格式。)

     

从过程的角度来看,生成一个独立的应用程序   包类似于生成基本应用程序包,因为   在第5章“打包基础”中讨论了以下内容   差异:

     

必须通过将其他参数传递给Ant任务来显式地请求自包含的应用程序包,或者   javapackager工具。

     

必须满足操作系统和工具要求,才能构建特定格式的软件包。

     

只能使用JDK 7 Update 6或更高版本来构建自包含的应用程序包。

     

虽然创建基本的独立应用程序包很容易,   量身定制以实现特定用户的最佳用户体验   分发方法通常需要一些努力和更深入的研究   对主题的理解。

     

...

     

7.3.5.1 OS X

     

在OS X上生成的软件包是“应用程序捆绑包”。

     

几个配置参数位于以下位置的Info.plist文件中   该应用程序捆绑包,并且必须符合以下规则:

     
    

应用程序ID(如果未指定ID,则为主类名称)用作CFBundleIdentifier。

         

应用程序版本用作CFBundleShortVersionString。

  
     

OS X 10.8引入了Gatekeeper,它可以防止执行不受信任的事件   代码,默认情况下,无论此代码是否在   Objective-C或Java。

     

用户可以手动启用应用程序运行,但这不是   完美的用户体验。为了获得最佳的用户体验,请获取   Apple提供的开发人员ID证书。 Mac捆绑软件使用   证书以签署.app文件夹。如果您的本地用户信息   与证书名称不同,您可能需要设置   捆绑参数mac.signing-key-user-name,如下所示   例如: