javafx-maven-plugin mac pkg安装程序未显示应用程序图标

时间:2016-08-12 13:51:39

标签: java macos maven javafx installer

我在我的mac上使用以下maven插件配置来生成本机安装程序。

<plugin>
    <groupId>com.zenjava</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>8.5.0</version>
    <configuration>
        <appName>${project.name}</appName>
        <title>${project.name}</title>
        <description>${project.description}</description>
        <vendor>example</vendor>
        <certCountry>com</certCountry>
        <mainClass>${mainClass}</mainClass>
        <needMenu>true</needMenu>
        <additionalAppResources>src/main/deploy/package/all</additionalAppResources>
        <bundleArguments>
            <icon.ico>src/main/resources/icons/Icon.ico</icon.ico>
            <icon.png>src/main/resources/icons/Icon_32.png</icon.png>
            <icon.icns>src/main/resources/icons/Icon.icns</icon.icns>
        </bundleArguments>
        <jfxMainAppJarName>${project.build.finalName}.jar</jfxMainAppJarName>
    </configuration>
</plugin>

Example.app文件夹和Example.dmg安装程序都显示正确的应用程序图标,但Example.pkg安装程序显示了普通的Java jar图像(1)。 如何改变图像(1)?

是否可以更改标题栏中的小图标(2)?

JavaFX PKG Installer OSX

我项目的文件夹结构:

  • SRC
      • 的java
        • *。java的
      • 资源
        • 图标
          • Icon.ico
          • Icon.icns
          • 图标_ *。PNG
      • 部署
          • 所有
            • LICENSE
  • 的pom.xml

我尝试使用Oracle Java JDK 8 Update 40和Update 101(64位)

另请参阅:javafx-maven-plugin#224

2 个答案:

答案 0 :(得分:1)

为了使它成为一个重复数据包,我也在这里粘贴答案:

你好,

这不是错误,它“只是”没有记录(似乎有很多人知道这个,或者很少有人使用这个功能)。

请参阅getConfig_BackgroundImage - 方法:

https://github.com/teamfx/openjfx-8u-dev-rt/blob/fd634925571310284b02d89ff512552e795ba5e8/modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacPkgBundler.java#L192

private File getConfig_BackgroundImage(Map<String, ? super Object> params) {
    return new File(CONFIG_ROOT.fetchFrom(params), APP_NAME.fetchFrom(params) + "-background.png");
}

请创建一些图片并将其放在src/main/deploy/package/macosx下面,它必须是PNG文件格式。此文件应命名为${project.name}-background.png以便由捆绑器提取。

<verbose>设置为true的情况下,这应该打印出来。

一般建议:打开VERBOSE-switch;)打包器本身表现不同(比如不删除临时创建的工作文件夹,可以进一步调整你的东西)并打印出更重要的调试内容。

官方文件中甚至提到了详细的提示: https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#BCGHHDGC

答案 1 :(得分:1)

延迟回复,但如果您仍然想知道如何更改标题栏中的小图标(2),则可以通过right-clicking pkg-file完成此操作并选择Get Info菜单,然后您只需{p}名称旁边的drag-and-drop .icns-file。这将更改pkg-icon以及安装期间标题栏中显示的内容。这似乎没有打破产品签名,这是好的,见下图...

enter image description here

要在图标更改后验证签名仍然存在:

spctl -a -v --type install MyAppName-1.0.pkg
MyAppName-1.0.pkg: accepted
source=Developer ID