Visualizzazione dei risultati da 1 a 7 su 7

Discussione: posizione SQLite file

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    19

    posizione SQLite file

    Nel mio progetto utilizzo il database SQLite, che si trova nella cartella
    codice:
    src/main/java/database/database.db
    
    Se avvio l'applicazione da NetBeans, tutto funziona correttamente e il database è aperto per le operazioni. Se compilo l'applicazione e avvio il file JAR, il database non viene visto. Non capisco dove dovrebbe essere posizionato, grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da chri.c Visualizza il messaggio
    Se compilo l'applicazione e avvio il file JAR, il database non viene visto. Non capisco dove dovrebbe essere posizionato, grazie per l'aiuto
    Sicuramente non lì. Quando l'applicazione "vive" per conto suo fuori da un IDE, una "src" non c'entra e non esiste più.

    La questione sarebbe da valutare meglio riguardo un aspetto: ovvero CHI/QUANDO deve creare il file del db. Deve essere creato (da qualche parte) al primo avvio della applicazione? O la applicazione ha una versione iniziale prepopolata con già qualcosa?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    19
    si l'applicazione ha già il db prepopolato. Per fare un test l'ho messo nel desktop così:
    C:\\Users\\Christian\\Desktop\\database.db", ma non lo vede ugualmente.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da chri.c Visualizza il messaggio
    si l'applicazione ha già il db prepopolato. Per fare un test l'ho messo nel desktop così:
    C:\\Users\\Christian\\Desktop\\database.db", ma non lo vede ugualmente.
    Se l'applicazione deve partire (fin dal primo avvio) con un db GIÀ prepopolato, una soluzione è la seguente. Il file del file db in stato "iniziale" lo tieni dentro il jar e al primo avvio lo scarichi sul file-system da qualche parte in modo che la applicazione lo possa rintracciare.

    Dove ... dipende. Potrebbe essere la directory "corrente" (ma significa saper/poter controllare quale è questa directory quando si avvia la JVM) oppure da qualche parte sotto una locazione "notevole" come ad esempio sotto la "home" dell'utente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    19
    capito, mi puoi fare un esempio del percorso "home" dell'utente? e cosa intendi con "lo tieni dentro jar e al primo avvio lo scarichi sul file-system", cioè quando compilo in quale cartella dovrebbe essere?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da chri.c Visualizza il messaggio
    capito, mi puoi fare un esempio del percorso "home" dell'utente?
    La "home" dell'utente si rintraccia dalla System property "user.home". Poi sotto la home è tipico (per convenzione un po' presa in prestito dagli Unix-like) avere directory nella forma es. .nomeapp (nota il punto iniziale) e sotto questa è tutto a discrezione della applicazione.

    Guarda nella home del tuo utente, vedrai sicuramente qualcosa di simile già presente.

    Quote Originariamente inviata da chri.c Visualizza il messaggio
    e cosa intendi con "lo tieni dentro jar e al primo avvio lo scarichi sul file-system", cioè quando compilo in quale cartella dovrebbe essere?
    Presumendo struttura "Maven", sotto src/main/resources direttamente qui o sotto-cartella. Tutto ciò che c'è sotto la resources è "in classpath" e finirebbe poi impacchettato in un jar.
    Poi tramite il principio delle risorse con getResourceAsStream di Class, ottieni un InputStream e copi l'intero stream sul file nella locazione scelta.
    Ultima modifica di andbin; 23-01-2018 a 00:15
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    19
    Grazie, mi hai fato capire molte cose!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.