Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    2

    [java] con eclipse si, da shell no...

    ciao a tutti, ho realizzato un'applicazione in java utilizzando eclipse, ed ho importanto alcune librerie nn presenti nel pacchetto standard. Ho esportato il progetto creando il file jar dell'intera applicazione per aver un unico eseguibile. Con eclipse funziona, invece da shell ho l'errore:

    C:\Programmi\eclipse\workspace>java -jar file.jar
    Opening: example.xml.
    java.lang.NoClassDefFoundError: org/jdom/JDOMException
    at MenuFrame.actionPerformed(MenuTest.java:287)
    at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
    at javax.swing.AbstractButton$ForwardActionEvents.act ionPerformed(Unknow
    n Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unk nown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputH andler.mouseRelease
    d(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierar chy(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    le nuove librerie sono in una sottocartella del progetto. :master:

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Semplice.... nel tuo classpath non c'è la libreria Jdom.... prova a fare così:
    1) Apri il file .jar con winRar o winzip (puoi anche non decompattarlo... ti basta solo aprirlo)
    2)vai in META-INF, prendi il file manifest.mf ed aggiungi:
    Class-Path: lib/jdom.jar
    3)sali di livello (abbandoni la directory META-INF dopo aver modificato e salvato il file Manifest.mf)e vai alla root
    4)aggiungi in questo punto una direcotry chiamata lib con all'interno il file jdom.jar

    Se tutto va bene dovrebbe funzicare. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    2
    Come dici tu funziona solo se nella cartella dove c'e' l'eseguibile jar ci copio la cartella lib contenente le librerie esterne tipo jdom.jar, xerces.jar ecc.
    Quello che volevo fare era includere tutto nel file Biblio.jar (come ho fatto) in modo che l'applicazione sia eseguibile da qualsiasi punto senza copiare cartelle lib, file di configurazione, ecc.

    Il mio file Biblio.jar e' fatto cosi':
    ..
    /META-INF
    /lib
    /image
    MenuTest.class
    Form.class
    e tutte le altre classi e vari file

    il file MANIFEST.MF e' fatto cosi':

    Manifest-Version: 1.0
    Main-Class: MenuTest
    Class-Path: lib/jdom.jar xerces.jar lib/xalan.jar lib/avalon-framework-cvs-20020315.jar lib/batik.jar lib/crimson.jar lib/fop.jar lib/jaxp.jar lib/xml-apis.jar lib/saxpath.jar

    forse devo aggiungere lib/ nelle mie classi quando utilizzo le librerie? ma a cosa servirebbe poi settare il path?

    cmq grazie!

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    se non ricordo male, aggiungendo la libreria nuova in

    JAVA_HOME\jre\lib\ext

    dove java_home è il path del jdk, ad esempio:

    C:\j2sdk1.4.2_05\jre\lib\ext

    dovrebbe venire trovato automaticamente.


    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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.