Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    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

  2. #2
    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.

  3. #3
    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

  4. #4
    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

  5. #5
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    32
    Quote Originariamente inviata da andbin Visualizza il messaggio
    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.
    Si visti, li ho anch'io... cmq esportandolo come JAR il file in questione con percorso non assuluto va inserito nella stessa cartella del JAR, poi ho provato per curiosità a vedere se si avviava anche su Linux e si è avviato java -jar myapp.jar .... ora lo provo su mac.... una figata!

  7. #7
    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
    cmq esportandolo come JAR il file in questione con percorso non assuluto va inserito nella stessa cartella del JAR
    Non ho capito se questo lo intendi come qualcosa che volevi o come un problema che non volevi. Comunque per avere il riferimento ad un file sotto una .qualcosa nella "home" i passi sono semplicissimi:

    codice:
    File appConfDir = new File(System.getProperty("user.home"), ".nomeapp");
    appConfDir.mkdirs();
    
    File confFile = new File(appConfDir, "conf.properties");

    Poi il confFile può esistere o no, dipende da cosa ci si aspetta (es. che sia stato impostato da un installer) ma un test con exists() come minimo ci può stare prima di fare qualunque caricamento.
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.