8

javafx パッケージのネイティブ バンドルを作成しているときに、exe ファイルのアイコンを変更しようとしています。アイコンを pom.xml に追加しようとしましたが、デフォルトのアイコンが表示されるまではうまくいきません
。パッケージを作成する Pom.xml を含む Intellij IDEA IDE を使用する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 にアイコンパスを追加しましたが、うまくいきません

それを行う他の方法はありますか?提案してください。


antを使用してpom.xmlでfxタグを試しました。これが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>

しかし、それはうまくいきません..

4

3 に答える 3

13

Zonsky の優れた javafx-maven-plugin を使用して、同じ問題に苦労しました。同じく使用していたバージョン 1.5 では、src/main/deploy ディレクトリがクラスパスに追加されます。使用するアイコンをそこに追加すると、ネイティブ ビルダーのクラスパスで使用できるようになります。

そこに src/main/deploy/package/windows/myapp.ico を追加したところ、最終的に機能しました:)

あなたのために:

  1. src/main/deploy/package/windows/フォルダを作成
  2. 名前付きのアイコンを追加${project.build.finalName}.ico
  3. 走るmvn jfx:build-native

私はそれを広範囲に遊んだわけではありません - 動作するようになり、共有したかっただけです. したがって、別の名前のアイコンを使用したい場合、方法がわかりません。少なくともまだです。<icon>...</icon>config セクションのセクションは webstart 用のようで、使用していません。うまくいくことを願っています!

于 2013-05-10T07:23:24.150 に答える