Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    5

    Esportazione file runnable java comprensivo del database

    Salve ho creato una applicazione java con eclipse, questa si connette ad un database SQLite:
    il problema è che adesso voglio esportare un runnable .jar ma quando lo usa su un' altra macchina non si connette più al database.
    Il problema credo sia dovuto al percorso di connessione, io mi connetto in questo modo

    Class.forName("org.sqlite.JDBC");
    Connection conn=DriverManager.getConnection("jdbc:sqlite:C:\\ workspace\\LayautGeneraleSoft\\src\\database\\Data baseDati.sqlite");

    insomma con un percorso assoluto,
    il file del database l' ho messo nella cartella src in maniera che venga esportato

    Sapreste dirmi come devo modificare la stringa di connessione ?

    avevo pensato di trattarla come un resouce:

    URL URL_Database = getClass().getResource("/database/DatabaseDati.sqlite");

    solo che non riesco a connetterlo

    vi ringrazio in anticipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kerikco Visualizza il messaggio
    Class.forName("org.sqlite.JDBC");
    Connection conn=DriverManager.getConnection("jdbc:sqlite:C:\\ workspace\\LayautGeneraleSoft\\src\\database\\Data baseDati.sqlite");

    insomma con un percorso assoluto,
    In generale (e se non per prove "al volo") NON va bene mettere path "assoluti" nei sorgenti.
    Cerca di usare qualcosa di messo fisso e cablato. Cerca insomma di determinare il percorso in altro modo. Potrebbe essere nella directory "corrente" (ma così dipende anche da come/da dove viene avviata la applicazione) oppure in un altro percorso "notevole", ad esempio una tua directory specifica sotto la "home" dell'utente.
    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
    Registrato dal
    Nov 2016
    Messaggi
    5
    e si sarebbe ottimo farlo partire nella stessa cartella del file .jar in modo che anche spostando il file non sorgono mai problemi , c' è un modo per riconscere questo percorso e immetterlo nella stringa di connessione ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kerikco Visualizza il messaggio
    e si sarebbe ottimo farlo partire nella stessa cartella del file .jar in modo che anche spostando il file non sorgono mai problemi , c' è un modo per riconscere questo percorso e immetterlo nella stringa di connessione ?
    La directory "corrente" ... è quella corrente, non c'è nulla di particolare da fare per rintracciarla ... basta usare un percorso relativo.

    Se invece intendi che il file del db DEVE essere sempre nella stessa directory del jar e la directory corrente PUO' NON essere la stessa di quella del jar, allora le cose sono leggermente diverse e quindi devi dedurre la directory del jar (che non c'entra quindi con quella corrente).
    Ci sono diversi modi ma dipende anche da come avvii il jar.

    Vedi ad esempio questa vecchia discussione.
    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
    Registrato dal
    Nov 2016
    Messaggi
    5
    ok usando un percorso ralativo in questo modo:

    Connection conn=DriverManager.getConnection("jdbc:sqlite:src\ \database\\DatabaseDati.sqlite");

    usando ancora eclipse funziona ancora perche ritrova il percorso giusto da solo, ma quando esporto il file e diventa .jar la cartella src non esiste più quidni come faccio ad entrarci dentro ?

    forse sbaglio a scrivere la stringa ?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kerikco Visualizza il messaggio
    Connection conn=DriverManager.getConnection("jdbc:sqlite:src\ \database\\DatabaseDati.sqlite");

    usando ancora eclipse funziona ancora perche ritrova il percorso giusto da solo, ma quando esporto il file e diventa .jar la cartella src non esiste più quidni come faccio ad entrarci dentro ?
    Appunto ... quando la tua applicazione "vivrà per conto suo", fuori da un qualunque ambiente di sviluppo la "src" non c'entrerà più nulla.
    Quindi NON mettere "src" nel path.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    5
    ok, come va scritta la stringa per collegarmi a quel file che sta dentro l' applicazione?

    potrei ottenere la url così
    URL URL_Database = getClass().getResource("/database/DatabaseDati.sqlite");

    ma poi non so come va scritto nel connector
    Ultima modifica di kerikco; 10-11-2016 a 13:55

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kerikco Visualizza il messaggio
    ok, come va scritta la stringa per collegarmi a quel file che sta dentro l' applicazione?

    potrei ottenere la url così
    URL URL_Database = getClass().getResource("/database/DatabaseDati.sqlite");

    ma poi non so come va scritto nel connector
    No, il file del db NON può essere usato/acceduto dentro il jar. Il file deve stare fuori dal jar nel file-system da qualche parte.
    All'interno del jar ha senso ed è lecito mettere una versione "iniziale" del db, che poi dovrai scaricare sul file-system tipicamente ad un "primo uso" della applicazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    5
    quindi all' avvio dell' applicazione dovrei prelevare il file del database dall' interno del .jar e salvarlo in un mio percorso a scelta.

    come posso ottenere questa operazione ?

  10. #10
    Ciao,
    Ti posso suggerire l'uso di un installer (tipo WiX, InnoSetup) che distribuisce la tua applicazione dove decidi di installarla?
    Potresti includere nell'installer il jar e il file del DB da inserire da un'altra parte.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.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.