Включая значок в автономное приложение JavaFX (.exe)
Далее следуют инструкции здесь и здесь. Я использую 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 true в соответствующем файле build.xml: "Использование ресурса пакета по умолчанию [значок приложения] (добавьте пакет /windows/icotest.ico в путь класса для настройки)"
Любая идея, что я могу делать неправильно? Спасибо.
Ответы
Ответ 1
Нашел ответ здесь. Похоже, что рекомендации, размещенные на веб-сайте Oracle, в настоящее время не соответствуют реальным сценариям развертывания. А именно, при работе с NetBeans ant не знает о текущем каталоге, который, как предполагается, является вашим корневым проектом. Как было предложено в соответствующей ветке форума, просто добавьте каталог, содержащий каталог "package/windows/${projectname}.ico" в ant, и он подберет соответствующий ресурс, даже хотя в учебнике утверждается, что это должно произойти автоматически из-за существующего (?) добавления '.' к сборке script.
![todo]()
Ответ 2
После проб и ошибок и использования ответа XXL я опубликую более четкий способ добавления вашего пользовательского значка в автономный JavaFX. Кстати, я использую Netbeans 7.3 JDK 1.7u17
1. Начните с создания папки с именем package внутри папки (с тем же именем, что и ваш проект), найденным в каталоге проекта src.
2. под пакетом папок создайте окна папок, и именно там вы разместите свой значок icon.please, убедитесь, что имя вашего файла .ico совпадает с именем приложения
Примечание. Это можно было бы легко сделать в netbeans, создав новый пакет, но по какой-то причине netbeans не позволяет вам называть пакет нового пакета,
![enter image description here]()
- Затем добавьте каталог, содержащий /package/windows/.ico, в Ant свойства clathpath
![enter image description here]()
- Очистите и создайте свой проект, и конечный результат будет выглядеть примерно так, используя ваш собственный значок
![enter image description here]()