在Mac上安装和运行Java应用程序

在Mac上安装和运行Java应用程序,java,macos,jarbundler,Java,Macos,Jarbundler,我有一个java桌面应用程序,我正试图为它创建一个Mac应用程序包。该应用程序由两个可运行的jar文件和几个文本和图像文件夹组成。第一个jar充当第二个jar的更新程序和启动器,第二个jar是应用程序的主体。应用程序使用应用程序中通过相对路径名引用的各种数据文件和图像,例如../images/bits/xyz.jpg 然而,在Mac上,在使用Jar Bundler创建应用程序包之后,我很难让相对路径名正常工作。我没有Mac的个人经验,需要帮助我理解在Mac上部署应用程序的标准方法。我注意到,我安

我有一个java桌面应用程序,我正试图为它创建一个Mac应用程序包。该应用程序由两个可运行的jar文件和几个文本和图像文件夹组成。第一个jar充当第二个jar的更新程序和启动器,第二个jar是应用程序的主体。应用程序使用应用程序中通过相对路径名引用的各种数据文件和图像,例如../images/bits/xyz.jpg


然而,在Mac上,在使用Jar Bundler创建应用程序包之后,我很难让相对路径名正常工作。我没有Mac的个人经验,需要帮助我理解在Mac上部署应用程序的标准方法。我注意到,我安装的其他应用程序是以磁盘映像文件的形式出现的,打开时会显示将应用程序拖动到应用程序文件夹中的说明。我正在尝试创建一个类似的安装包。提前感谢您的建议。

您可能需要一个Mac才能创建一个合适的Java捆绑包和DMG文件。 下面是一个简单的例子:

下面是一个关于如何使用Mac特定Swing功能的教程:

您可能需要一个Mac来创建一个合适的Java捆绑包和一个DMG文件。 下面是一个简单的例子:

下面是一个关于如何使用Mac特定Swing功能的教程:
磁盘映像中的拖放指令完全是骗人的。一旦应用程序包制作正确,无论它是在磁盘映像中还是刚刚压缩,都无关紧要


请注意,在Mac上,可执行文件(无论是本机Cocoa还是Java)的当前目录都没有设置为可执行文件的路径。因此,您首先需要获取jar文件的当前绝对路径,例如。为此,在堆栈溢出上已经存在Q&A。例如,请参见..

磁盘映像中的拖放指令完全是一个骗局。一旦应用程序包制作正确,无论它是在磁盘映像中还是刚刚压缩,都无关紧要


请注意,在Mac上,可执行文件(无论是本机Cocoa还是Java)的当前目录都没有设置为可执行文件的路径。因此,您首先需要获取jar文件的当前绝对路径,例如。为此,在堆栈溢出上已经存在Q&A。例如,作为Pyxis软件的开发人员,我想补充一点,我们开发了一个解决此问题的应用程序。名为Pyxis Bundler的应用程序将自动将您的jar文件和可选库绑定到标准Mac应用程序中

您可以选择从JAVAHOME目录嵌入JRE,或者选择特定的JRE。虽然这显然会扩大应用程序的规模,但用户不需要在机器上预装JAVA来运行应用程序

还可以选择创建一个现代苹果图标图像多尺寸ICNS文件

我们将其设计为Jar Bundler应用程序的替代品,多年前,Jar Bundler应用程序一直随Xcode一起提供

Pyxis Bundler将每个唯一的应用程序设置保存到首选项文件中,因此,如果或在更新Mac应用程序时,只需从下拉列表中选择应用程序名称即可加载该应用程序以前使用的所有数据。然后简单地增加您的版本号并单击Create按钮

我应该补充一点,对于Pyxis Bundler,您必须使用正确的包名

有关更多信息,请访问:


您可以在此处查看如何命名软件包:

作为Pyxis软件的开发人员,我想补充一点,我们开发了一个解决此问题的应用程序。名为Pyxis Bundler的应用程序将自动将您的jar文件和可选库绑定到标准Mac应用程序中

您可以选择从JAVAHOME目录嵌入JRE,或者选择特定的JRE。虽然这显然会扩大应用程序的规模,但用户不需要在机器上预装JAVA来运行应用程序

还可以选择创建一个现代苹果图标图像多尺寸ICNS文件

我们将其设计为Jar Bundler应用程序的替代品,多年前,Jar Bundler应用程序一直随Xcode一起提供

Pyxis Bundler将每个唯一的应用程序设置保存到首选项文件中,因此,如果或在更新Mac应用程序时,只需从下拉列表中选择应用程序名称即可加载该应用程序以前使用的所有数据。然后简单地增加您的版本号并单击Create按钮

我应该补充一点,对于Pyxis Bundler,您必须使用正确的包名

有关更多信息,请访问:


您可以在此处查看如何命名包:

您是否考虑过将资源绑定到所有平台的JAR中?是否考虑过将资源绑定到所有平台的JAR中?