Applicazione Java con database in locale (offline)

di il
11 risposte

Applicazione Java con database in locale (offline)

Salve,
vorrei sapere qual è la soluzione migliore per creare un'applicazione portatile (windows, ma se possibile anche unix) con un database in locale, e offline, quindi senza l'ausilio di internet.

Ho cercato sul web ma non ci ho capito molto.

Avrei bisogno di sapere quale tipo di database creare (es. access, mysql, base, etc..).
Inoltre, concluso il programma, avrei necessità di caricarlo su una pendrive usb, e poterlo avviare su altri pc (per questo sw portatile), principalmente con ambiente windows.

Vi ringrazio anticipatamente!

11 Risposte

  • Re: Applicazione Java con database in locale (offline)

    massimiliano1990 ha scritto:


    vorrei sapere qual è la soluzione migliore per creare un'applicazione portatile (windows, ma se possibile anche unix) con un database in locale, e offline, quindi senza l'ausilio di internet.
    Nessun database di per sé ha "bisogno" di internet. Uno potrebbe benissimo mettere su una macchina un DBMS client-server (come es. MySQL o PostgreSQL) per cui è il caso in cui client e server sono la stessa macchina.
    Ovviamente NON è proprio "portabile", nel senso che DBMS come MySQL, PostgreSQL vanno installati sulla macchina con una procedura più o meno complessa. Non è questo certo il senso di "portabile" quindi.

    massimiliano1990 ha scritto:


    Avrei bisogno di sapere quale tipo di database creare (es. access, mysql, base, etc..).
    Inoltre, concluso il programma, avrei necessità di caricarlo su una pendrive usb, e poterlo avviare su altri pc (per questo sw portatile), principalmente con ambiente windows.
    Se serve proprio "portabilità" (nel senso di non dover fare una apposita "installazione" di un DBMS client-server sulla macchina), allora un database "embedded" in Java: HSQLDB, Apache Derby o altri.
  • Re: Applicazione Java con database in locale (offline)

    andbin ha scritto:


    Ovviamente NON è proprio "portabile", nel senso che DBMS come MySQL, PostgreSQL vanno installati sulla macchina con una procedura più o meno complessa. Non è questo certo il senso di "portabile" quindi.
    In realtà è possibile fare un mysql (più precisamente mariadb) portabile, che non richiede cioè installazione.

    La risposta alla domanda posta invece è: non si può fare.

    Un'applicazione portabile Windows è banale - ad esempio in delphi puoi avere esattamente due file: il programma, e l'archivio.

    Farlo funzionare su Linux/Mac invece è praticamente impossibile, senza avere un qualche genere di supporto (wine ad esempio).
    Applicazioni Java richiedono la relativa virtual machine, quindi sono tutto tranne che "portabili" (nel senso specificato)
  • Re: Applicazione Java con database in locale (offline)

    +m2+ ha scritto:


    In realtà è possibile fare un mysql (più precisamente mariadb) portabile, che non richiede cioè installazione.
    Non lo sapevo, grazie.

    +m2+ ha scritto:


    Applicazioni Java richiedono la relativa virtual machine, quindi sono tutto tranne che "portabili" (nel senso specificato)
    Però sarebbe possibile "portarsi dietro" una JVM. Certo ... non è il massimo della leggerezza ....
  • Re: Applicazione Java con database in locale (offline)

    andbin ha scritto:


    Però sarebbe possibile "portarsi dietro" una JVM. Certo ... non è il massimo della leggerezza ....
    In effetti è corretto, ma una JVM per ogni ambiente.
    Non sono sicurissimo sia possibile con le impostazioni predefinite di "sicurezza" (con le ") di windows 10, ma in linea teorica sì

    @mysqld (o mariadb).
    il server (mysqld.exe) è di circa 9-10MB, servono "un po'" di file assistiti (tipicamente charset), e poco altro.
    Insomma un 20 o 30MB per un mariadb completo di tutti gli "optional".
    Non proprio come la "roba" Microsoft o Oracle
  • Re: Applicazione Java con database in locale (offline)

    +m2+ ha scritto:


    andbin ha scritto:


    Ovviamente NON è proprio "portabile", nel senso che DBMS come MySQL, PostgreSQL vanno installati sulla macchina con una procedura più o meno complessa. Non è questo certo il senso di "portabile" quindi.
    In realtà è possibile fare un mysql (più precisamente mariadb) portabile, che non richiede cioè installazione.

    La risposta alla domanda posta invece è: non si può fare.

    Un'applicazione portabile Windows è banale - ad esempio in delphi puoi avere esattamente due file: il programma, e l'archivio.

    Farlo funzionare su Linux/Mac invece è praticamente impossibile, senza avere un qualche genere di supporto (wine ad esempio).
    Applicazioni Java richiedono la relativa virtual machine, quindi sono tutto tranne che "portabili" (nel senso specificato)
    Se prendessi in esame Windows.. quindi di voler spostare al massimo il mio programma tra pc in Windows, cosa mi consiglieresti? Non Java?
  • Re: Applicazione Java con database in locale (offline)

    massimiliano1990 ha scritto:


    Salve,
    vorrei sapere qual è la soluzione migliore per creare un'applicazione portatile (windows, ma se possibile anche unix) con un database in locale, e offline, quindi senza l'ausilio di internet.

    Ho cercato sul web ma non ci ho capito molto.

    Avrei bisogno di sapere quale tipo di database creare (es. access, mysql, base, etc..).
    Inoltre, concluso il programma, avrei necessità di caricarlo su una pendrive usb, e poterlo avviare su altri pc (per questo sw portatile), principalmente con ambiente windows.

    Vi ringrazio anticipatamente!
    Un'applicazione Java e' gia' portatibile al 90/95%, se si sta' un po' attenti, e le parti dipendenti dal sistema possono essere opportunamente isolate. Generalmente servono poche modifche per poter funzionare praticamente allo stesso modo su Windows, Linux e Mac

    Per avere anche il DB, devi usare un DB embedded[/b], scritto totalmente in Java: questo, generalmente, e' portabile al 100%.

    Poi c'e' la questione della VM: ma questa e' una questione relativa.
    Generalmente tutti i sistemi hanno una VM gia' installata.
    Se non c'e', si puo' installarla.
    Ma anche l'installazione puo' essere ridotta al solo spacchettamente di un zip/tgz in una directory.

    Qui, il problema che puo' nascere e' sulla versione di Java in uso: se vuoi essere PORTABILE, NON PUOI usare la versione piu' recente (9.0) ma devi usare quella PIU' CONSERVATIVA, quindi la 7.

    Attenzione: DEVI SVILUPPARE CON LA VERSIONE 7 DEL JDK, NON usare la versione 9 (o comunqie una versione successiva) in modalita' retrocompatibile!!!!
  • Re: Applicazione Java con database in locale (offline)

    Cmq come db portabile c'è anche sqlite, senza dover andare per forza su db scritti in java.

    io ho creato due programmi per l'azienda che si portanno dietro il db sqlite.
    e tutto funziona sia su linux che su windows senza problemi (suppongo anche su mac, ma non ce l'ho....).
  • Re: Applicazione Java con database in locale (offline)

    Perfetto.. provo ad implementare qualcosa..
    Grazie a tutti..
  • Re: Applicazione Java con database in locale (offline)

    fermat ha scritto:


    Cmq come db portabile c'è anche sqlite, senza dover andare per forza su db scritti in java.

    io ho creato due programmi per l'azienda che si portanno dietro il db sqlite.
    e tutto funziona sia su linux che su windows senza problemi (suppongo anche su mac, ma non ce l'ho....).
    http://www.sqlitetutorial.net/sqlite-java
    https://www.sqlite.org/download.htm

    C'e' un diffetto di fondo nel tuo ragionamento: con un DB scritto in Java, passare da un sistema ad un'altro non e' un problema.
    Con SQLite, devi caricarlo dinamicamente da Java, devi avere una versione compilata per ogni sistema, e ci sono n-mila altre rognette da considerare
  • Re: Applicazione Java con database in locale (offline)

    migliorabile ha scritto:


    fermat ha scritto:


    Cmq come db portabile c'è anche sqlite, senza dover andare per forza su db scritti in java.

    io ho creato due programmi per l'azienda che si portanno dietro il db sqlite.
    e tutto funziona sia su linux che su windows senza problemi (suppongo anche su mac, ma non ce l'ho....).
    http://www.sqlitetutorial.net/sqlite-java
    https://www.sqlite.org/download.htm

    C'e' un diffetto di fondo nel tuo ragionamento: con un DB scritto in Java, passare da un sistema ad un'altro non e' un problema.
    Con SQLite, devi caricarlo dinamicamente da Java, devi avere una versione compilata per ogni sistema, e ci sono n-mila altre rognette da considerare
    si questo è vero.
    se però poi si vuole riscrivere il programma in un altro linguaggio, non è più semplice il passaggio??
    sqlite è supportato praticamente da chiunque (anche node.js per dire).

    però si, se l'intenzione è di rimanere in java forever, hai perfettamente ragione!
  • Re: Applicazione Java con database in locale (offline)

    Salve a tutti,
    HyperSQL che ne pensate?
Devi accedere o registrarti per scrivere nel forum
11 risposte