Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460

    Problema con la documentazione java

    Ultimamente, sempre più spesso, mi imbatto nella documentazione java e nella sua poca ricchezza di informazioni, ad esempio, ero interessato a capire come ottenere informazioni sull'ambiente in cui viene eseguito il programma java, quindi arrivo al metodo getProperty() della classe System.

    Il problema è presto detto, trovo la documentazione su cosa sia quel metodo e cosa faccia, trovo il tipo restituito ed il problema è sull'uso, mi ritrovo scritto una cosa del tipo, "per usare getProperty devi passare una stringa che rappresenti il campo per il quale vuoi info", ora il problema è: dove prendo la lista di tutte le possibili opzioni che mi offre getProperty?

    è inutile dire che sono arrivato comunque ad una pagina http://download.oracle.com/javase/tu...t/sysprop.html che non è comunque stata per nulla esaustiva.

    C'è un modo per listare tutte le stringhe che posso passare come argomenti a getProperty ( a parte spulciarsi la classe e come è stata scritta, cosa che non sempre è immediata e fa perdere comunque del tempo ) ? C'è un metodo che vale per tutte queste situazioni dove la documentazione non tratta per nulla l'argomento?

    Ho postato qui perché per me un problema di documentazione è un problema di programmazione.

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora questa frase

    "The following table describes some of the most important system properties"
    dice tutto, quella è una lista delle principali properties in genere "universali".
    Hai infatti il System.user, la java home, la home ecc.

    Ne puoi avere altre definite da te (ovviamente) e in genere le passi in esecuzione alla jvm in vari modi: tramite un file di properties che il tuo programma si carica all'avvio o anche tramite la direttiva -D

    infatti non è strano trovare una roba del genere


    java -Dusa_log_su_console=true ProgrammaDiTest

    per definire una property che userà il tuo programma di test. Infatti il tuo programma avrà una roba simile a

    System.getProperty("usa_log_su_console");

    e ottieni il risultato.

    Non ricordo come, ma a seconda del sistema operativo puoi agire a livello di environment (perdona la scarsa memoria).

    Ovviamente queste personalizzate o le conosci o le conosci.

    Infine viene in tuo aiuto
    getProperties ma restituisce le properties di sistema, non tutte. Per le altre la documentazione dovrebbe indicare quelle rilevanti (almeno io non conosco altre vie).

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Al di là del fatto che sono convinto che la documentazione di Java sia una delle più complete, esaustive, ben fatte e semplici sulla faccia del pianeta (MSDN al confronto è un accozzaglia di incomprensibilità infinita), credo che il problema sia il fatto che non sei abituato ad usarla (l'abitudine arriva con il tempo).

    Se dai un'occhiata alla descrizione del metodo getProperties(), troverai che vi sono elencate TUTTE le properties universalmente valide.

    Ovviamente, quel metodo ritorna un oggetto Properties. Ti basta controllare la documentazione di tale classe (con un clic sopra al nome), per scoprire che tale classe deriva da Hashtable (quindi, è una Hashtable, quindi un'insieme di coppie chiave-valore), la quale possiede il metodo keySet(), che ritorna il set completo di tutte le chiavi contenute nella tabella.

    Detto questo, come si fa ad ottenere l'elenco completo di tutte le properties presenti sulla tua macchina? Semplice:

    codice:
    // Ottengo le properties
    Properties prop = System.getProperties();
    
    // Ottengo l'elenco delle chiavi
    Set<String> chiavi = prop.ketSet();
    
    // Visualizzo tutti i valori di tutte le properties, scorrendo le chiavi
    for(String s : chiavi) {
       System.out.println( prop.get(s) );
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.