2013-04-08 12 views
8

Próbuję przypadkiem ikonę pliku exe podczas tworzenia macierzystego pakowania pakietów javafx. Próbowałem dodać ikonę do pom.xml ale dopóki nie będzie działać dla mnie, ponieważ daje domyślną ikonę
Korzystanie IntelliJ IDEA IDE, które zawierają pom.xml Tworzenie pakietu przez command = mvn jfx:build-native Oto moja pom.xml:Jak ustawić niestandardową ikonę dla ikony pakietu macierzystego javafx na Windows

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

dodałem ścieżkę do ikony pom.xml $ {basedir} /src/main/resources/images/logoIcon.ico że będzie działał, gdy pakiet rodzimy wykonać ale to przyzwyczajenie praca dla mnie

Czy jakakolwiek inna sposób to zrobić? Proszę sugerować.


próbowałem tagów FX w pom.xml użyciu mrówkę, tutaj jest moje zmiany w 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> 

ale to przyzwyczajenie wypracować ..

+0

nazwa folderu Windows jest brakuje w kodzie tutaj: '' – KeepMove

Odpowiedz

10

właśnie zmagał się z tej samej kwestii, stosując wielką JavaFX-maven-plugin Zonsky użytkownika. Od wersji 1.5, z której również korzystałeś, katalog src/main/deploy zostanie dodany do ścieżki klasy. Ikona, której chcesz użyć, może zostać dodana i będzie dostępna w ścieżce klas dla rodzimego programu budującego!

dodałem src/main/wdrożyć/pakiet/Windows/myapp.ico tam i wreszcie pracował :)

Dla ciebie:

  1. Tworzenie src/main/deploy/package/windows/ folderu
  2. ikonę Dodaj z nazwy ${project.build.finalName}.ico
  3. Run mvn jfx:build-native

I haven” Grałem z nim intensywnie - po prostu zadziałało i chciałem się nim podzielić. Więc jeśli chcesz używać ikony o innej nazwie, nie wiem jak. Jeszcze nie co najmniej. Sekcja <icon>...</icon> w sekcji konfiguracji wydaje się być dla webstartu, więc nie używam go. Mam nadzieję, że dostaniesz go do pracy!

1

Trzeba spojrzeć na logowanie podczas budowania natywnej aplikacji. Dzięki temu dowiesz się, gdzie instalator szuka plików ikon i których nazwa. Domyślna aplikacja natywna dla systemu Windows wygląda w ./package/windows/ "nazwa_aplikacji" .ico Nie pamiętam, skąd pochodzi nazwa "appname", ale po prostu spójrz na rejestrowanie podczas budowania, to ci powie. (Używam mrówka cele zwane z moim pom btw)

+0

dziennika budując natywną aplikację: [ INFO] Budowanie rodzimych instalatorów [DEBUG] Używanie pliku ikony w "C: \ Projects \ DemoApp \ src \ main \ deploy \ logoIcon.ico" powoduje, że ścieżka jest właściwa, ale ikona pakietu jest ustawiona na domyślną ikonę – user1859806

+0

Tworzenie pakietu aplikacji : Facewizz w c: \ dev \ repositories \ profil_planner \ profileplanner \ target \ dist \ bundles Za pomocą niestandardowego zasobu pakietu [ikona aplikacji] (ładowanego z pakietu/windows/Facewizz.ico na ścieżce klasy) otrzymuję. Wydaje się, że twoje logowanie pochodzi z wtyczki Maven.Im więcej abstrakcji wykonasz z oryginalnych narzędzi do budowania, tym więcej okazji do porażki imho. –

+0

jakiej wersji używasz Javy? Nagle zauważam, że gdy buduję swoją aplikację z 7.0.17, ikona nie jest ustawiona. Jest w wersji 7.0.12-ea, więc prawdopodobnie był to błąd, który zostanie naprawiony w wydaniu poprawkowym. –

Powiązane problemy