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

时间:2012-12-03 12:32:24

标签: installer icons native javafx-2

按照说明herehere进行操作。我使用的是 JDK 7u9 NetBeans 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

这是 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>

无论我做什么 - 我仍然会在 dist build 进程(激活 ISS )时收到此消息,并设置 debug 标志在 build.xml 文件中 true :“使用默认包资源[应用程序图标](将包/ windows / icotest.ico添加到要自定义的类路径)”

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

2 个答案:

答案 0 :(得分:16)

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

win 2.在文件夹包下,创建文件夹窗口,这是您放置自定义图标的位置。请确保.ico文件的名称与应用程序名称相同 enter image description here  注意:这可以通过创建新包在netbeans中轻松完成,但出于某种原因,netbeans不允许您为新包命名“package” enter image description here

  1. 接下来,将包含/package/windows/.ico的目录添加到Ant clathpath属性 enter image description here
  2. 清洁&amp;构建您的项目,最终输出将使用您的自定义图标看起来像这样 enter image description here

答案 1 :(得分:11)

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

todo