Library Package

di il
5 risposte

Library Package

Salve a tutti del forum.

Premetto che ho fatto una libreria di 5 classi e:
1) l'ho esportata in un file jar (Export Eclipse) per usarla in un'altra applicazione.
2) successivamente ho copiato il Jar nel nuovo progetto (in una cartella lib locale al nuovo progetto)
3) ho utilizzato BuildPath del progetto nuovo per integrare la libreria in questione.

Ora, se creo una classe nel "Default Package", non ci sono problemi ossia la classe nuova vede tutti i metodi statici della classe presente nella libreria.
.
Nel momento che sposto, la classe in questione, in un package a doc ottengo un'errore come se la libreria non ci fosse più.

Mi sono perso qualcosa? Perchè ho questo problema?

Saluti
Nick

5 Risposte

  • Re: Library Package

    cnesan ha scritto:


    Ora, se creo una classe nel "Default Package", non ci sono problemi ossia la classe nuova vede tutti i metodi statici della classe presente nella libreria.
    .
    Nel momento che sposto, la classe in questione, in un package a doc ottengo un'errore come se la libreria non ci fosse più.
    Le classi della libreria sono nel package di "default"? Se sì, sappi che classi in un package apposito (non default) NON possono usare classi nel package di default.

    Se si tratta di una "libreria", le classi vanno qualificate appropriatamente.
  • Re: Library Package

    Per "qualificate appropriatamente" cosa si intende?

    Attualmente: La libreria è importata in "Referenced Library" (iUtility.jar & iException.jar)

    <situazione in Eclipse>
    JEngine (Project Name)
    - src
    -- default package
    --- tclass() { iGeneral.Local(); ....... } //Perfect
    -- pippoPackage (empty)

    - JRE System Library (librerie di sistema!)
    -- xxxxx...
    - Referenced Library
    -- iUtility.jar (contiene le classi: iGeneral - iFile - iXML - etc.)
    -- iException.jar (contiene la classe: Except)

    TUTTO OK, i metodi della tclass riescono ad utilizzare i metodi statici e le classi presenti nei file jar "iUtility" e "iException".

    <situazione successiva in Eclipse>
    JEngine (ProjectName)
    - src
    -- default package (empty)

    -- pippoPackage
    --- tclass() {iGeneral.Local();.......}
    - JRE System Library
    - Referenced Library
    -- iUtility.jar (contiene le classi: iGeneral - iFile - iXML - etc.)
    -- iException.jar (contiene la classe: Except)

    tclass va in errore poichè non trova i riferimenti delle classi di iUtility.jar e Exception.jar

    In questo caso ho provato a utilizzare "import" nel file tclass:
    import iGeneral.*; -> Unused
    o
    import iGeneral; -> error

    RE: in qualsiasi modo lo metto mi dice che "import" è inutilizzato:

    Qualche consiglio?

    Forse il concetto di package non credo di averlo capito bene!!!!!!
  • Re: Library Package

    Forse ho trovato il problema.

    Quando ho fatto la libreria, nel progetto della libreria le classi si trovano nel package di default. Può essere che è proprio la mancanza del package specifico crei problemi??

    Tradotti in termini pratici, il progetto da cui è stato esportato in .Jar è così fatto:
    iUtility (PorjectName)
    - src
    --(default package)
    --- iFile.java
    --- iGeneral.java
    --- iSystem.java
    --- iXML.java
    - JRE System Library
    (end)

    Può essere che è qui che devo definire il nome del package (come dire di primo livello?)?
  • Re: Library Package

    cnesan ha scritto:


    Per "qualificate appropriatamente" cosa si intende?
    Intendevo dire che sono da mettere in un package con nome specifico ... non in quello di "default" (il unnamed package, senza nome).

    cnesan ha scritto:


    Quando ho fatto la libreria, nel progetto della libreria le classi si trovano nel package di default. Può essere che è proprio la mancanza del package specifico crei problemi??
    Sì è quello ... e te lo ripeto ancora: una classe in un package con nome NON può usare classi nel package di default.
  • Re: Library Package

    Grazie
Devi accedere o registrarti per scrivere nel forum
5 risposte