Maven e nome nella barra delle applicazioni

di il
9 risposte

Maven e nome nella barra delle applicazioni

Ciao!

ho compilato un progetto Maven con mvn package.
questo il mio pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mp.photoalbum</groupId>
    <artifactId>MPPhotoGallery</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>MPPhotoGallery</name>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/de.huxhorn.lilith/de.huxhorn.lilith.3rdparty.junique -->
        <dependency>
            <groupId>de.huxhorn.lilith</groupId>
            <artifactId>de.huxhorn.lilith.3rdparty.junique</artifactId>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>com.drewnoakes</groupId>
            <artifactId>metadata-extractor</artifactId>
            <version>2.11.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.mp.photoalbum.Main</mainClass>
                </configuration>
            </plugin>
            <!-- PER PRODUZIONE -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.mp.photoalbum.Main</mainClass>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>
il problema sta che quanto avvio il programma, nella barra delle applicazioni si vede il nome del package, e non il nome del programma.
come dovrei impostare questa informazione??

9 Risposte

  • Re: Maven e nome nella barra delle applicazioni

    fermat ha scritto:


    il problema sta che quanto avvio il programma, nella barra delle applicazioni si vede il nome del package, e non il nome del programma.
    Alt. Intanto: che tipo di applicazione è? "console"? La avvii come/da dove?
  • Re: Maven e nome nella barra delle applicazioni

    No non è console.
    ma è un'applicazione che usa JavaFX.
    l'ho creata con intellij.
    poi la relase finale la creo direttamente da terminale con mvn package (con intellij ancora non ho ben capito come creare un jar, ma al momento mi interessa relativmante poco).

    una volta creato il jar:
    - su linux lo lancio con java -jar FILE.jar
    - su windows con il classico doppio click sul jar
  • Re: Maven e nome nella barra delle applicazioni

    fermat ha scritto:


    ma è un'applicazione che usa JavaFX.
    Se è una applicazione GUI ha finestra/e grafiche. Che hanno un titolo (che è anche quello che vedi in taskbar). E il titolo della finestra lo puoi certamente impostare, se ben ricordo: setTitle("titolo") sullo Stage.
  • Re: Maven e nome nella barra delle applicazioni

    
        public static void openWindow(String fileFxml, String title, int width, int height, boolean resiz, Modality modality) throws IOException {
            Parent root = FXMLLoader.load(FXMLUtils.class.getResource(fileFxml));
            Stage stage = new Stage();
            File icon = new File(FXMLUtils.class.getClassLoader().getResource("puffo.png").getFile());
            stage.getIcons().add(new Image(icon.toURI().toString()));
            stage.setTitle(title);
            stage.setScene(new Scene(root, width, height));
            stage.setResizable(resiz);
            stage.initModality(modality);
            stage.show();
        }
    
    al momento di richiamare il metodo, passavo una stringa vuota come parametro.
    quindi in verità non impostavo un titolo.

    scusate, penso di essere un pò fuso!
  • Re: Maven e nome nella barra delle applicazioni

    fermat ha scritto:


    
            File icon = new File(FXMLUtils.class.getClassLoader().getResource("puffo.png").getFile());
            stage.getIcons().add(new Image(icon.toURI().toString()));
    
    Occhio .... perché questo mi pare un "giro" un po' inutile.
  • Re: Maven e nome nella barra delle applicazioni

    Ed infatti ho un problema anche su quello.

    se lancio il programma da intellij, l'icona nella taskbar si vede.
    se lancio il jar pacchettizzato con mvn package, non si vede.
    però dentro al jar l'icona c'è.
  • Re: Maven e nome nella barra delle applicazioni

    Niente come non detto.
    ho modificato così e funziona anche con il jar:
    
    stage.getIcons().add(new Image(FXMLUtils.class.getClassLoader().getResourceAsStream("puffo.png")));
    
  • Re: Maven e nome nella barra delle applicazioni

    fermat ha scritto:


    
    stage.getIcons().add(new Image(FXMLUtils.class.getClassLoader().getResourceAsStream("puffo.png")));
    
    Sì, molto più corretto e conciso.

    Ma si può anche fare es.

    new Image(FXMLUtils.class.getClassLoader().getResource("puffo.png").toExternalForm())

    Nel primo si ottiene un InputStream, in quest'ultimo un url in String.
  • Re: Maven e nome nella barra delle applicazioni

    Perfetto, grazie!!
Devi accedere o registrarti per scrivere nel forum
9 risposte