Как установить пользовательский значок для значка javafx native package в Windows
Я пытаюсь случайно использовать иконку exe файла при создании собственного пакета javafx-упаковки.
Я попытался добавить иконку в pom.xml, но пока это не сработает для меня, поскольку она дает значок по умолчанию
Использование Intellij IDEA IDE, в котором содержится Pom.xml, создающий пакет command = mvn jfx:build-native
Вот мой pom.xml
:
<build>
<plugins>
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<mainClass>com.demoApp.testapp.testApplication</mainClass>
<!-- only required if signing the jar file -->
<keyStoreAlias>example-user</keyStoreAlias>
<keyStorePassword>example-password</keyStorePassword>
<permissions>
<permission>all-permissions</permission>
</permissions>
<icon>${basedir}/src/main/resources/images/logoIcon.ico</icon>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
Я добавил путь значка в pom.xml ${basedir}/src/main/resources/images/logoIcon.ico
который будет выполняться, пока выполняется собственный пакет, но он не будет работать для меня
Есть ли другой способ сделать это?
Пожалуйста, предложите.
Я попробовал теги fx в pom.xml с помощью ant, вот мои изменения в pom.xml
<properties>
<javafx.tools.ant.jar>${env.JAVA_HOME}\lib\ant-javafx.jar</javafx.tools.ant.jar> </properties>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>create-launcher-jar</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target xmlns:fx="javafx:com.sun.javafx.tools.ant">
<taskdef
uri="javafx:com.sun.javafx.tools.ant"
resource="com/sun/javafx/tools/ant/antlib.xml"
classpath="${javafx.tools.ant.jar}"/>
<fx:application id="fxApp"
name="${project.name}"
mainClass="com.precisionhawk.flightplanner.FlightPlannerApp"/>
<fx:jar destfile="${project.build.directory}/${project.build.finalName}-launcher">
<fx:application refid="fxApp"/>
<fx:fileset dir="${project.build.directory}/classes"/>
</fx:jar>
<attachartifact file="${project.build.directory}/${project.build.finalName}-launcher.jar"
classifier="launcher"/>
<fx:deploy>
<fx:info>
<fx:icon href="${basedir}/src/main/deploy/logoIcon.ico"></fx:icon>
</fx:info>
</fx:deploy>
</target>
</configuration>
</execution>
</executions>
</plugin>
но это не сработает.
Ответы
Ответ 1
Я просто боролся с той же проблемой, используя Zonsky большой javafx-maven-plugin. Начиная с версии 1.5, которую вы также использовали, каталог src/main/deploy будет добавлен в путь к классам. Значок, который вы хотите использовать, можно добавить туда, и он будет доступен в пути к классам для встроенного конструктора!
Я добавил src/main/deploy/package/windows/myapp.ico и, наконец, работал:)
Для вас:
- Создайте папку
src/main/deploy/package/windows/
- Добавить значок с именем
${project.build.finalName}.ico
- Запустить
mvn jfx:build-native
Я не играл с ним широко - просто получил его на работу и хотел поделиться. Поэтому, если вы хотите использовать значок с другим именем, я не знаю, как это сделать. Пока нет. Раздел <icon>...</icon>
в разделе конфигурации, похоже, предназначен для webstart, поэтому я его не использовал.
Надеюсь, вы заработаете!
Ответ 2
Вам нужно посмотреть журнал при создании собственного приложения. Это скажет вам, где программа установки ищет файлы значков и с именем. Для обычного приложения Windows по умолчанию он выглядит. /package/windows/ 'appname'.ico
Не могу вспомнить, откуда происходит "appname", но просто посмотрите на журнал при построении, он вам скажет. (Я использую Ant цели, вызванные из моего pom btw)
Ответ 3
you can do this:
'<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<vendor>YourCompany</vendor>
<mainClass>com.alan344.MapperGenApplication</mainClass>
<appName>mybatis-friend</appName>
<bundleArguments>
<icon>${project.basedir}/src/main/resources/image/icon.ico</icon>
</bundleArguments>
</configuration>
</plugin>'