Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44

    mettere una libreria nel file jar

    ciao ragazzi ho un problemino spero semplice...devo fare un file .jar di un'applicazione solo che ho usato delle librerie esterne tipo iText. Sto usando eclipse ed ovviamente sono riuscito ad importarla in modo tale che su eclipse l'applicazione funge. quando creo il file .jar ovviamente no perche non ci sono le librerie...come devo fare per metterla nel file .jar???la libreria è anche essa un file jar.Scomppatto e metto tutti i file .class? oppure che altro?non c'e un modo per dirgli ad eclipse di importare tutti i package esterni.???

    grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: mettere una libreria nel file jar

    Originariamente inviato da snikes
    come devo fare per metterla nel file .jar???la libreria è anche essa un file jar.Scomppatto e metto tutti i file .class?
    No, non dovresti.

    Il concetto ovvio è che i jar siano in "classpath" affinché la JVM possa trovare le classi. E il classpath si può impostare in svariati modi: con la variabile di ambiente CLASSPATH, o direttamente ai tools javac/java e altri del JDK oppure ancora specificando l'attributo Class-Path nel "manifest" del jar della applicazione. E quest'ultimo caso è l'ideale se la tua applicazione è appunto in un jar.

    A quel punto è solo sufficiente che i jar di cui ha bisogno la tua applicazione stiano "insieme" al tuo jar principale legati semplicemente secondo un path "relativo" indicato nell'attributo Class-Path.

    Es. se nel manifest del tuo jar hai:

    Class-Path: lib/altrofile.jar

    Beh, vuol solo dire che se il jar della tua applicazione sta nella directory X, allora ci deve essere una directory 'lib' sotto X con dentro altrofile.jar
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44
    non so se ho capito bene, pero descrivo la mia applicazione:
    dentro il mio file .jar(l'applicazione vera e propria) ci sono tre cartelle:

    - gui (package che ho creato io)
    - logica (package che ho creato io)
    - META-INF (c'e il file manifest)

    come dicevo prima dentro gui e logica ci sono tutte le classi che ho creato della mia applicazione.
    la libreria iText (file .jar) e indispensabile ad una classe contenuta nella cartella gui.
    dentro il foglio di manifest c'e scritto:

    Manifest-Version: 1.0
    Main-Class: gui.PannelloSchede

    quindi io dovrei fare cosi:
    mettere nella cartella "gui" il file iText.jar e nel manifest specificare questa riga:
    Class-Path: gui/iText.jar
    giusto???

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da snikes
    quindi io dovrei fare cosi:
    mettere nella cartella "gui" il file iText.jar e nel manifest specificare questa riga:
    Class-Path: gui/iText.jar
    giusto???
    Sì, è giusto se appunto dove hai il tuo jar principale hai anche la directory 'gui' con dentro iText.jar.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di snikes
    Registrato dal
    Feb 2009
    Messaggi
    44
    hhum....ho provato ma non funge...c'e qualcosa che non va....
    io ho modificato il file manifest manualmente....magari se lo faccio da eclipse cambia qualcosa...??penso di no....
    intanto il mio file manifest e cosi:

    Manifest-Version: 1.0
    Main-Class: gui.PannelloSchede
    Class-Path: gui/iText-2.1.4.jar

    nella gui ho messo la libreria .jar
    penso sia semplice....humm cosa puo esserci che non va...

    perche l'errore me lo da quando la classe esegue questo codice:

    import com.lowagie.text.*;
    import com.lowagie.text.pdf.*;

    forse devo importare im package...???

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da snikes
    io ho modificato il file manifest manualmente....
    Se lo modifichi manualmente devi prestare un po' attenzione, ci sono dei dettagli un po' critici. Come il fatto che al fondo del manifest ci deve essere un newline.
    Generalmente meglio farlo generare da un tool, es. Ant.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.