Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [NETBEANS] file .jar e librerie

    Buongiorno a tutti
    Sto finalizzando un progetto cominciato con Netbeans da un ex collega ma non mi trovo molto a mio agio, ho il seguente problema:
    Quando vado a fare il build del progetto tutte le librerie utilizzate mi vengono incluse nel Jar finale, oltre che copiate nella directory /dist/lib e non riesco ad eliminarle dalla /src in quanto il progetto non compila.
    Ho fatto un po' di ricerche in giro ma non sono riuscito a trovare una soluzione

    NetBeans IDE 6.9.1 (Build 201011082200)
    1.7.0-ea; Java HotSpot(TM) Client VM 20.0-b02
    Windows 7 version 6.1 running on x86; Cp1252; it_IT (nb)

    Sicuramente commetto degli errori di configurazione ma non riesco a capire quali

    Ringrazio in anticipo a chiunque possa aiutarmi

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa vuoi creare un jar del tuo prodotto con le opzioni di default senza aggiungere le librerie a cui si riferisce? Non è che si capisca molto la tua richiesta.

    Se vuoi cambiare questo comportamento devi modificare tu a manina il build.xml associato al progetto.

  3. #3
    Ciao, innanzitutto grazie per la risposta

    In effetti non mi sono spiegato molto bene, il file jar contiene tutte le librerie utilizzate (e diventa molto grande) ma se lo distribuisco da solo senza portarmi in giro la cartella /lib non funziona, se lo compilo senza le librerie e lo distribuisco CON la cartella /lib non funziona.

    In pratica funziona SOLO se includo i jar delle librerie dentro il jar dell'applicazione E porto in giro la cartella /lib

    C'è una ridondanza di librerie e non credo che dovrebbe essere così, preferirei non includere i jar della librerie nel jar dell'applicazione e mantenerle tutte nella cartella /lib

    Grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    credo proprio dovresti scrivere a manina il tutto, ricordando cmq che le librerie che non includi devono essere nel classpath per l'esecuzione.
    TI dico questo perché l'alternativa è modificare a mano il build.xml (che puoi cmq prendere da modello) nei vari punti in cui fai il jar (il target dist dovrebbe essere).

    In genere quando è possibile evito di escludere dal jar le librerie che uso per evitare casini con versioni di librerie esistenti (capita quando distribuisci codice e la gente, per i fatti suoi, ha una versione delle stesse lib che uso io).

  5. #5
    Grazie valia
    Originariamente inviato da valia
    In genere quando è possibile evito di escludere dal jar le librerie che uso per evitare casini con versioni di librerie esistenti (capita quando distribuisci codice e la gente, per i fatti suoi, ha una versione delle stesse lib che uso io).
    Questo non sarebbe un problema in quanto l'applicazione dovrà risiedere su server controllati totalmente da noi
    credo proprio dovresti scrivere a manina il tutto, ricordando cmq che le librerie che non includi devono essere nel classpath per l'esecuzione. TI dico questo perché l'alternativa è modificare a mano il build.xml (che puoi cmq prendere da modello) nei vari punti in cui fai il jar (il target dist dovrebbe essere).
    Ti prego di scusare la mia ignoranza, ma questo vuol dire che se lavoro con NetBeans DEVO portatmi in giro sia un jar enorme che contiene le librerie che uso e le librerie stesse a meno di non intervenire a mano sui file build.xml e classpath?

    Scusa la mia scarsa capacità, è il promo progetto Java serio di cui mi devo occupare, fino ad ora ho lavorato solo in c# con VisualStudio

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    direi di si, non ricordo il comportamento di default di netbeans, ma ti crea un jar che puoi eseguire anche fuori da netbeans (infatti il build&clean si conclude dicendo puoi eseguire il programma scrivendo

    java -jar nomeprogramma.jar

    dalla dist, quindi senza bisogno di altro.

    Capisco le difficoltà nel passaggio da c# a java, ma credo proprio che per evitare di portarti via tutto devi intervenire con qualche opzione sul progetto (che non ricordo) oppure sul build.xml (in genere io preferisco la seconda perché uso l'IDE solo per debuggare/sviluppare in maniera rapida, le compilazioni le faccio a mano da riga di comando o con ant/maven )

  7. #7
    Ti ringrazio molto per tutti i consigli
    Proverò ad intervenire sul build.xml

    Grazie mille

  8. #8
    Ho risolto

    anche se ammetto, con un po' di vergogna, che non ho messo mano al file build.xml, credo che la IDE di NetBeans lo abbia fatto per me.

    Andando a cercare sul file build.xml la sezione dove poter escludere i file jar delle librerie ho letto che era generato automaticamente dalle proprietà di NetBeans, andando a vedere le proprietà del progetto alla sezione Build > Packaging c'è un campo "Exclude from JAR file" che conteneva la stringa **/*.java

    Ho aggiunto **/*.jar ed ora il jar dell'applicazione non contiene più i jar delle librerie, pur rimanendo esse referenziate all'interno del progetto e facendomelo compilare, ed utilizza in runtime le librerie presenti nella cartella /lib

    Ho pensato che potesse essere utile a qualcuno

    Grazie mille per tutti i suggerimenti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.