将图标包含在一个独立的JavaFX应用程序(.exe)中

XXL*_*XXL 12 installer icons native javafx-2

按照这里这里的说明.我使用的是JDK 7u9NetBeans 7.2.1.我所做的是创建相对于我的项目的根文件夹(C:\ Users\Administrator\Desktop\icotest\package\windows\icotest.ico)的整个路径.我尝试了48x48和256x256两种尺寸.这是我的项目名为icotest的树概述:

?   build.xml
?   manifest.mf
?
????build
?   ?   built-jar.properties
?   ?
?   ????classes
?   ?   ????icotest
?   ?           Main$1.class
?   ?           Main.class
?   ?
?   ????empty
?   ????generated-sources
?       ????ap-source-output
????dist
?   ?   icotest.html
?   ?   icotest.jar
?   ?   icotest.jnlp
?   ?
?   ????web-files
?           dtjava.js
?           error.png
?           get_java.png
?           get_javafx.png
?           javafx-chrome.png
?           javafx-loading-100x100.gif
?           javafx-loading-25x25.gif
?           upgrade_java.png
?           upgrade_javafx.png
?
????nbproject
?   ?   build-impl.xml
?   ?   genfiles.properties
?   ?   jfx-impl.xml
?   ?   project.properties
?   ?   project.xml
?   ?
?   ????configs
?   ?       Run_as_WebStart.properties
?   ?       Run_in_Browser.properties
?   ?
?   ????private
?       ?   private.properties
?       ?   private.xml
?       ?
?       ????configs
?               Run_as_WebStart.properties
?               Run_in_Browser.properties
?
????package
?   ????windows
?           icotest.ico
?
????src
    ????icotest
            Main.java
Run Code Online (Sandbox Code Playgroud)

这就是build.xml的样子:

<target name="-post-jfx-deploy">
    <fx:deploy verbose="true" nativeBundles="exe" outdir="${basedir}/${dist.dir}" outfile="${application.title}">
        <fx:application name="${application.title}" mainClass="${javafx.main.class}"/>
        <fx:resources>
            <fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/>
            <fx:fileset dir="${basedir}/${dist.dir}" includes="lib/*.jar"/>
        </fx:resources>
        <fx:info title="${application.title}" vendor="${application.vendor}"/>
        <fx:preferences shortcut="true"/>
    </fx:deploy>
</target>
Run Code Online (Sandbox Code Playgroud)

无论我做什么 - 我仍然在dist构建过程(激活ISS)期间得到此消息,并在相应的build.xml文件中将debug标志设置为true:"使用默认包资源[应用程序图标](添加包/窗口) /icotest.ico到类路径自定义)"

知道我可能做错了什么吗?谢谢.

Fra*_*cis 16

经过反复试验并使用XXL回答后,我发布了一个更加清晰的方法,将自定义图标添加到自包含的JavaFX中.顺便说一下,使用Netbeans 7.3 JDK 1.7u17 1.首先在项目src目录中的文件夹(与项目同名)中创建一个名为package的文件夹.

赢得 2.在文件夹包下,创建文件夹窗口,这是您放置自定义图标的位置.请确保.ico文件的名称与应用程序名称相同 在此输入图像描述 注意:这可以通过创建新包在netbeans中轻松完成,但出于某种原因,netbeans不允许您为新包命名"package" 在此输入图像描述

  1. 接下来,将包含/package/windows/.ico的目录添加到Ant clathpath属性 在此输入图像描述
  2. 清理并构建项目,最终输出将与您的自定义图标类似 在此输入图像描述

  • 你先生是一位绅士和学者,我爱你,希望我能在问同样的问题之前找到它。尽管如此,我会将这个答案与我自己的问题联系起来,以便其他无法正确表达问题的人可能会偶然发现这个雄辩而有效的解决方案。给你我的帽子,我祝你有美好的一天。 (2认同)

XXL*_*XXL 11

这里找到答案 .看来Oracle网站上发布的指南目前与实际可用的部署方案不匹配.也就是说,在处理NetBeans时,ant并不知道当前被认为是您的根项目的目录.正如在相应论坛帖子中所建议的那样 - 只需将包含"package/windows/$ {projectname} .ico"的目录添加到ant的classpath中,它就会获取相关资源,即使教程声称这应该是由于现有()添加'.'而自动发生.到构建脚本.

去做