NetBeans (Maven) - JavaFX

di il
3 risposte

NetBeans (Maven) - JavaFX

Salute a tutti.

Ho due problemi di impostazione (credo) con Netbeans. (o meglio con Maven impostato da NetBeans).

Nello specifico sto usando NB 12, ma ho provato anche con NB 16. 

JDK11, ma ho provato anche con JDK17.

S.O. Linux/Debian

In sintesi il jar che si produce con il build del progetto non contiene l'indicazione della Main Class e non vengono incorporate le dipendenze javaFX.

quindi se lo lancio ottengo l'errore <nessun attributo manifest principale in mioProgramma.jar> che risolvo scrivendola a mano nel file MANIFEST.MF.

A questo punto da l'errore <Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found> 

che risolvo anteponendo le indicazioni <--module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml> al nome del file jar quando lo lancio.

Vorrei sapere cosa modificare affinché il build di Netbeans inserisca le direttive complete in Manifest e sopratutto incorpori le librerie javafx.


Di seguito alcuni tentativi fatti.

Creo un nuovo progetto:

File > Nuovo Progetto > java with maven > FXML javaFX Maven Archetype 

provo ad impostare la MainClass sulla scheda RUN delle proprietà del progetto, ma la scheda evidenzia questo errore:

<<One of Run/Debug/Profile Project actions has been modified and the Run panel cannot be safely edited>>

resettando le impostazioni Run/Debug/Profile dalla scheda Actions oppure  impostando nella scheda configurations <relese-profile> 

mi permette di inserirla, ma non risolve il problema in fase di debug.

Da ultimo segnalo che nel tab progetti, nella cartella Dependencies del mio progetto vedo elencati i file jar javafx. Inoltre se esegui il run all'interno dell' IDE funziona regolarmente.

Scusatemi se sono stato lungo, ma era per spiegare i tentativi già fatti.

Grazie per l'aiuto, 

3 Risposte

  • Re: NetBeans (Maven) - JavaFX

    04/02/2023 - kiriku70 ha scritto:


    Ho due problemi di impostazione (credo) con Netbeans. (o meglio con Maven impostato da NetBeans).

    Se usi Maven, devi saper mettere mano al pom.xml. Non c'entra (tanto) l'IDE (potrebbe essere Eclipse ….).

    Se si vuole impostare il Main-Class nel manifest bisogna configurare il maven-jar-plugin. Questo però non basta, bisogna vedere come vuoi disporre le dipendenze rispetto al TUO jar principale. Ci sono varie opzioni.

    • puoi usare il maven-shade-plugin per creare un “uber” jar, ovvero un singolo jar che contiene tutte le classi/risorse di tutte le dipendenze.
    • puoi usare il maven-jar-plugin insieme al maven-dependency-plugin per fare in modo che Maven copi tutte le dipendenze in una cartella “relativa” al tuo jar (è una soluzione molto “classica”).

    Se non fai almeno una di queste due cose, comunque il tuo jar, da solo, NON lo lanci “facilmente”.

    I dettagli li trovi abbastanza facilmente su internet (ho anche dei progetti su GitHub che usano questi plugin) ma se hai dubbi, chiedi.

  • Re: NetBeans (Maven) - JavaFX

    Ho affrontato il problema in IntelliJ ma credo sia molto simile. C'è una classe Main ulteriore da creare perché la application di defualt non riesce ad includere le dipendenze.

    ***"

  • Re: NetBeans (Maven) - JavaFX

    Grazie andbin,

    seguendo le tue indicazioni ho sistemato, anche se non sono certo di aver impostato i plugins suggeriti nel modo più corretto, man con la seconda opzione (che è quella che mi interessava) funziona. Ho fato dei tentativi anche con la soluzione uber jar, ma non sono riuscito a trovare la giusta configurazione. Ovviamente dovrei studiare meglio/di più l'argomento, ma al momento ho già tante cose da dover capire/imparare su java/javafx che mi limito (per ora) al fatto che funziona questa prima impostazione.

    Certo apprezzerei molto se netBeans, magari con qualche scelta da impostare con il wizard di creazione del progetto, regolasse queste impostazioni in automatico, come molte che già fa. Non per pigrizia, ma essendo alle prime armi, preferirei concentrarmi sugli aspetti core di java/javafx. 

    Per lo stesso motivo non mi ci metto a capire l'impostazione su intelliJ, perché ho già tanta confusione sulle impostazioni/automatismi di netBeans.

    (ho scelto di imparare con netBeans anziché intellij perché da quel che ho capito la versione community non ha i plugin per i CSS. L'aspetto “decorativo” che si può ottenere con i CSS è la parte che mi piace meno, per cui a maggior ragione apprezzo/mi servono gli aiuti (fantastici) dati dal IDE. Ascolto volentieri commenti al riguardo).

    Comunque volevo solo ringraziare entrambi per l'attenzione/tempo che mi avete concesso.

Devi accedere o registrarti per scrivere nel forum
3 risposte