Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Utilizzo file e cartelle attraverso file Jar


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 3 risposta/e

#1
nghuit

nghuit

    Advanced Member

  • Utente
  • StellaStellaStella
  • 333 Messaggi:
Ragazzi ho fatto un'applicazione java ed ho creato il relativo file eseguibile .jar utilizzando Netbeans.
A questo punto mi sono accorto (ditemi se sbaglio) che le cartelle e i file contenuti nella cartella del progetto non sono inseriti nel .jar, né si possono inserire manualmente... sono così nati due problemi:
1. le librerie esterne sono fuori dal .jar e quindi se sposto quest'ultimo non funziona più niente
2. devo caricare e gestire dei file esterni che sono indispensabili, ma anche in questo caso l'unico modo in cui mi sembra sia possibile è mettere tutto nella cartella del .jar e "portarmi sempre tutto appresso"
3. l'applicazione usa un database .odbc... non voglio neanche immaginare come si possa utilizzare al di fuori del mio pc attraverso il .jar!
In sostanza la domanda è una: posso "inserire" tutte queste cose (librerie esterne, file, cartelle di lavoro e database) nel mio .jar per "compattare" l'applicazione?
Grazie infinite a chiunque provi a darmi una mano!


“L'uomo può credere all'impossibile, non crederà mai all'improbabile.”
"Se si ha uno scopo da raggiungere tutto l'universo si adopera per il suo raggiungimento."

#2
Blackjack

Blackjack

    Moderatore globale

  • Moderatore
  • 2542 Messaggi:
Le librerie esterne possono essere incorporate nel jar, guarda meglio le opzioni di creazione del jar.
Anche io ho avuto lo stesso problema per l'accesso ai file, ci sarebbe in teoria il modo di poter accedere alle cartelle e ai file che si trovano nel jar stesso, in modo da avere tutto compattato nel jar, ma è un procedimento astruso che non ho mai capito... googla un pò... se trovi una soluzione sono interessato anche io.
Per il database obdc, non penso che lo puoi portare in giro così come se niente fosse... io ho risolto il problema senza usare OBDC ma salvando tutte le tabelle in un file binario in java, anche se è una soluzione pezzotta. Potresti però considerare la possibilità di usare XML.
Immagine inviata
Immagine inviata
Immagine inviata

"L'amore è la capacità di avvertire il simile nel dissimile"

#3
Losaitu

Losaitu

    Advanced Member

  • Utente
  • StellaStellaStella
  • 348 Messaggi:
Per aggiungere file di librerie esterne basta andare sulle proprietà del progetto(pulsante destro->proprietà), poi "librerie" e da lì netbeans ti fa aggiungere i file jar o i progetti o le librerie che desideri e quando va a creare il jar crea una cartella "lib" dove sono contenuti i file delle librerie esterne. Per quanto riguarda file in generale se vuoi raggrupparli ti crei una cartella e nel file manifest vai a definire l'attributo Classh-Path vai a definire tutti i file con il relativo percorso(su quest'ultima cosa controlla bene perché non ne sono sicuro, comunque per le librerie esterne nel manifest netbeans va a definire il class-path per tutti file jar delle librerie esterne "Class-Path: lib/customizer.jar lib/jmf.jar lib/mediaplayer.jar lib/multiplayer.jar", credo che anche per i file dovresti fare così). Per quanto riguarda il db vorrei capirlo ank'io sto fatto!

ps: se non vuoi creare una cartella a parte di sicuro il file lo devi mettere nella directory radice del jar, e poi devi fare sempre qualche magheggio sull'attributo class-path.
Who shot ya?

#4
nghuit

nghuit

    Advanced Member

  • Utente
  • StellaStellaStella
  • 333 Messaggi:
Ragazzi grazie delle risposte, in ogni caso io ho risolto così:
1. mettere tutti i file e le cartelle che servono all'applicazione all'interno di una sola cartella con nome uguale a quello del package, nella root principale del progetto, e scrivere (adattare) il programma in modo che tutti i riferimenti siano corretti secondo questa impostazione dei file.
1. con netbeans: pulisci e costruisci
2. decomprimere il file .jar ottenuto
3. modificare il file manifest.mf:
- rimuovendo dal suo interno le righe relative al "created by" e alla versione (e all'ANT),
- aggiungendo la riga "Main-Class: mioPackage.miaClasseConMain"
4. salvare tale file come "manifest.txt" nella cartella bin della jdk utilizzata per l'applicazione
5. copiare in quest'ultima cartella sia l'intera cartella (ovvero il package) estratta dal .jar sia tutte le cartelle e i file usati dal programma proprio così come stavano nella root directory del progetto
6. aprire prompt dei comandi, posizionarsi nella cartella bin del punto 4, e scrivere "jar -cmf manifest.txt nomeDesiderato.jar nomePackage"
Questo permette di compattare tutta l'applicazione in una cartella contenente il file ESEGUIBILE CON DOPPIO CLICK .jar e tutte le cartelle e i file utilizzati (compresa la cartella "lib" contenente le eventuali librerie esterne).
Per quanto riguarda invece il problema del database invece ho risolto prendendo spunto da: http://www.infernet....d.php?tid=16351
Detto ciò, devo dire che netbeans ed eclipse fanno veramente schifo! E che servirebbe proprio qualche tool che semplifichi tutte queste cose. Difatti la mia soluzione (credo) è pezzottissima.
:ciao:
“L'uomo può credere all'impossibile, non crederà mai all'improbabile.”
"Se si ha uno scopo da raggiungere tutto l'universo si adopera per il suo raggiungimento."




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi