Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    32

    [Java] Buildare un progetto eclipse con file di properties

    Salve,
    in un mio progetto eclipse java
    accingo a delle properties da un file di properties: serverDB.properties che contiene le credenziali per collegarmi ad un server database.

    se buildo il mio progetto con Ant e inno setup devo far riferimento a questo file oppure basta metterlo nelle stessa cartella dell'eseguibile.exe?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da nobo_ Visualizza il messaggio
    Salve,
    in un mio progetto eclipse java
    accingo a delle properties da un file di properties: serverDB.properties che contiene le credenziali per collegarmi ad un server database.

    se buildo il mio progetto con Ant e inno setup devo far riferimento a questo file oppure basta metterlo nelle stessa cartella dell'eseguibile.exe?
    Scusa ma non è molto chiaro .... quel file di properties serve in fase di build e/o in fase di runtime della applicazione? Se serve solo a runtime, dove mettere il file di properties dipende solo da come/dove il codice cerca quel file. Lo cerca lungo il "classpath"? Lo cerca nella directory "corrente"? Lo cerca nella (o più sotto) directory "home" dell'utente? Altro?
    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
    Jan 2004
    Messaggi
    32
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Scusa ma non è molto chiaro .... quel file di properties serve in fase di build e/o in fase di runtime della applicazione? Se serve solo a runtime, dove mettere il file di properties dipende solo da come/dove il codice cerca quel file. Lo cerca lungo il "classpath"? Lo cerca nella directory "corrente"? Lo cerca nella (o più sotto) directory "home" dell'utente? Altro?
    Il file serve in fase di runtime e il codice che lo richiama è questo :

    codice:
    Properties properties = new Properties();
    properties.load(new FileInputStream("serverDB.properties"));

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da nobo_ Visualizza il messaggio
    codice:
    Properties properties = new Properties();
    properties.load(new FileInputStream("serverDB.properties"));
    Così viene cercato nella directory "corrente", che poi è quella che è corrente nel momento in cui viene avviata la JVM. E dipende appunto da come/da dove e con cosa si avvia la JVM.
    Se a monte c'è un eseguibile nativo/script/batch che è in grado di impostare la directory corrente in modo che sia giusta per l'applicazione, allora è un conto. Se invece dipende da come l'utente lancia la applicazione, allora la tua applicazione potrebbe non funzionare correttamente.
    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
    Jan 2004
    Messaggi
    32
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Così viene cercato nella directory "corrente", che poi è quella che è corrente nel momento in cui viene avviata la JVM. E dipende appunto da come/da dove e con cosa si avvia la JVM.
    Se a monte c'è un eseguibile nativo/script/batch che è in grado di impostare la directory corrente in modo che sia giusta per l'applicazione, allora è un conto. Se invece dipende da come l'utente lancia la applicazione, allora la tua applicazione potrebbe non funzionare correttamente.
    Devo dire che non ti ho seguito molto ma stando al codice che ti ho incollato... se io deployo l'applicazione con ant e inno setup 5 quindi ottenendo un eseguibile che mi installerà nel pc la mia applicazione, qual è il percorso che bisogna dare magari in fase di coding questo? ::
    %LOCALAPPDATA%\NomeMiaApplicazione\serverDB.proper ties

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da nobo_ Visualizza il messaggio
    Devo dire che non ti ho seguito molto
    A dire il vero non c'era molto da seguire ... più che altro il concetto di directory "corrente" (che tra l'altro, in teoria, dovresti già conoscere).

    Quote Originariamente inviata da nobo_ Visualizza il messaggio
    ma stando al codice che ti ho incollato...
    se io deployo l'applicazione con ant e inno setup 5 quindi ottenendo un eseguibile che mi installerà nel pc la mia applicazione, qual è il percorso che bisogna dare magari in fase di coding questo? ::
    %LOCALAPPDATA%\NomeMiaApplicazione\serverDB.proper ties
    Inno setup non lo conosco/uso (so ovviamente cosa è) ma alla fin fine è solo uno strumento per creare degli "installer". Aiuta solo a predisporre i file durante una fase di setup ma le scelte/logiche di configurazione della applicazione spettano a te, non a questi tool!

    Se stavi pensando di mettere nel sorgente Java es.

    new FileInputStream("%LOCALAPPDATA%\\NomeMiaApplicazio ne\\serverDB.properties")

    Sappi che è sbagliato. La forma %VARIABILE% è specifica solo per i sistemi Windows, Java non ha alcuna nozione di questo e non ha nulla per espandere/risolvere questa forma.
    Se vuoi puoi prendere dall'environment la variabile LOCALAPPDATA e poi comporre tu il path. Questo sì. Ma sarebbe comunque specifico solo per i Windows. E se ti basta questo, non avrei obiezioni.
    Ultima modifica di andbin; 19-01-2016 a 22:02
    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
    Jan 2004
    Messaggi
    32
    Quote Originariamente inviata da andbin Visualizza il messaggio
    A dire il vero non c'era molto da seguire ... più che altro il concetto di directory "corrente" (che tra l'altro, in teoria, dovresti già conoscere).


    Inno setup non lo conosco/uso (so ovviamente cosa è) ma alla fin fine è solo uno strumento per creare degli "installer". Aiuta solo a predisporre i file durante una fase di setup ma le scelte/logiche di configurazione della applicazione spettano a te, non a questi tool!

    Se stavi pensando di mettere nel sorgente Java es.

    new FileInputStream("%LOCALAPPDATA%\\NomeMiaApplicazio ne\\serverDB.properties")

    Sappi che è sbagliato. La forma %VARIABILE% è specifica solo per i sistemi Windows, Java non ha alcuna nozione di questo e non ha nulla per espandere/risolvere questa forma.
    Se vuoi puoi prendere dall'environment la variabile LOCALAPPDATA e poi comporre tu il path. Questo sì. Ma sarebbe comunque specifico solo per i Windows. E se ti basta questo, non avrei obiezioni.
    So bene che non è la via migliore perché va contro la filosofia Java di essere multi piattaforma. Il codice dovrebbe essere il più possibile non legato allo specifico Sistema Operativo.
    Cmq sono contento di aver fatto il mio programma , ma c'è ancora da lavorare per scrivere codice come si deve.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da nobo_ Visualizza il messaggio
    Il codice dovrebbe essere il più possibile non legato allo specifico Sistema Operativo.
    Riguardo file di configurazione e/o preferenze utente ci sono varie possibilità, più "standard" rispetto a %LOCALAPPDATA% o roba del genere.

    C'è la directory "home" dell'utente, che si rintraccia con System.getProperty("user.home") . Tipicamente le applicazioni (sia Java e native) creano nella home dell'utente una directory specifica per la applicazione che inizia con il "." (punto). Ad esempio Eclipse crea nella home dell'utente una directory .eclipse e dentro ci mette sue configurazioni.
    Da quella directory lì in giù l'applicazione può mettere quello che gli pare (dati, file di properties, ecc...).

    Altra possibilità, tipicamente per le preferenze dell'utente, è usare la Preference API (package java.util.prefs) che è stata introdotta in Java 1.4.
    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
    Jan 2004
    Messaggi
    32
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Riguardo file di configurazione e/o preferenze utente ci sono varie possibilità, più "standard" rispetto a %LOCALAPPDATA% o roba del genere.

    C'è la directory "home" dell'utente, che si rintraccia con System.getProperty("user.home") . Tipicamente le applicazioni (sia Java e native) creano nella home dell'utente una directory specifica per la applicazione che inizia con il "." (punto). Ad esempio Eclipse crea nella home dell'utente una directory .eclipse e dentro ci mette sue configurazioni.
    Da quella directory lì in giù l'applicazione può mettere quello che gli pare (dati, file di properties, ecc...).

    Altra possibilità, tipicamente per le preferenze dell'utente, è usare la Preference API (package java.util.prefs) che è stata introdotta in Java 1.4.
    Intanto grazie per la disponibilità, sei un enciclopedia vivente..!!!
    Darò un occhiata, come dicevi tu in altri post , non basta un libro per imparare tutto.
    Per ogni specifica cosa c'è un oceano di informazione.
    Il passo giusto da fare è codare e risolvere i problemi che man mano arrivano perché se dovessimo imparare prima tutto e poi codare , rimarremo sempre allo stato "TEORIA" ...


    PS: il .nomecartella sa molto di sistemi unix-like poco usato da winz

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da nobo_ Visualizza il messaggio
    PS: il .nomecartella sa molto di sistemi unix-like poco usato da winz
    Sì, probabilmente l'origine è dai sistemi unix-like (non so la storia esatta a riguardo di questo, comunque) ma questo vale anche su Windows, e specialmente per tutti quei software multi-piattaforma (sia Java sia nativi).

    Nella mia cartella "home" C:\Users\Andrea ho almeno una dozzina di cartelle .qualcosa, tra cui come ho detto .eclipse (per Eclipse), poi es. .m2 (il repository locale Maven) e altri.
    Ultima modifica di andbin; 20-01-2016 a 15:29
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.