Che cos'è il formato di file PROPERTIES?
I file con estensione .properties sono utilizzati dalla tecnologia Java per memorizzare proprietà e parametri di applicazione configurabili. Possono anche includere stringhe per l'internazionalizzazione e la localizzazione, rendendoli un formato standard per i bundle di messaggi i18n nelle applicazioni Java e nei framework come Spring.
Ogni riga in un file .properties contiene un singolo parametro. Ogni parametro è memorizzato come una coppia di stringhe: la prima contiene il nome del parametro (chiamata chiave) e la seconda contiene il suo valore. Chiavi e valori sono separati da =, :, o spazi bianchi. Le righe che iniziano con # o ! sono trattate come commenti e ignorate dal parser. Una barra rovesciata finale (\) alla fine di una riga continua il valore sulla riga successiva.
Per impostazione predefinita, i file .properties sono codificati in ISO-8859-1 (Latin-1). I caratteri non latini devono essere scritti come sequenze di escape Unicode \uXXXX - a differenza dei file YAML o dei file XML, che supportano nativamente UTF-8. Java 9 ha introdotto il supporto per il caricamento dei file .properties in UTF-8 quando viene fornito un charset esplicito.
Modifica dei file .properties
I file .properties possono essere modificati liberamente con qualsiasi editor di testo. Tuttavia, sono disponibili anche strumenti più avanzati per la modifica dei file, dotati di funzioni aggiuntive non supportate dai normali editor di testo. L'uso di questi strumenti consente:
- validazione dei dati
- creazione di nuove chiavi
- sincronizzazione dei nomi delle chiavi tra i file di localizzazione
- conversione automatica bidirezionale di simboli non ASCII da e verso escape
\uXXXX - integrazione con Eclipse
Informazioni aggiuntive
Ai file .properties si accede nelle applicazioni Java tramite la classe java.util.Properties. In genere sono inclusi come risorse del classpath all'interno di archivi JAR o WAR e caricati a runtime - non esiste una directory predefinita fissa per essi. Il formato .ini svolge un ruolo simile in ambienti non Java, mentre i file .env sono comunemente usati nelle moderne distribuzioni containerizzate.
Sicurezza e incolumità
RISCHIO: LOWUn file .properties è testo semplice e non può eseguire codice, quindi aprirne uno è sicuro. Due preoccupazioni reali: (1) contengono spesso segreti - password di database, chiavi API, stringhe di connessione - quindi non incollarli in strumenti online non affidabili né caricarli su repository pubblici. (2) Rischio di modifica: un errore di battitura, una codifica errata (salvare in UTF-8 dove è richiesto ISO-8859-1 può rovinare gli accenti) o un carattere estraneo possono impedire l'avvio dell'app Java. Effettuare sempre un backup dell'originale prima di modificare un valore.
Dettagli del formato
in sintesiProgrammi che aprono file PROPERTIES
Dettagli tecnici
specifiche approfondite| Codifica predefinita | ISO-8859-1 (Latin-1) |
| Supporto UTF-8 | Disponibile da Java 9+ tramite argomento charset esplicito in Properties.load() |
| Caratteri non ASCII | Devono essere rappresentati come sequenze di escape Unicode \uXXXX quando si usa la codifica ISO-8859-1 |
| Separatore chiave-valore | =, :, o spazio bianco non protetto - la prima occorrenza divide la chiave dal valore |
| Sintassi dei commenti | # o ! all'inizio di una riga |
| Continuazione di riga | Una \ finale unisce la riga successiva al valore corrente; lo spazio bianco iniziale sulla riga di continuazione viene rimosso |
| Rimozione spazi bianchi | Lo spazio bianco iniziale prima delle chiavi e tra il separatore e il valore viene rimosso automaticamente |
| Comportamento chiavi duplicate | Consentito dal parser; l'ultima definizione sovrascrive silenziosamente le precedenti |
| Classe API Java | java.util.Properties |
| Tipo MIME | text/plain |
| Magic bytes / firma | Nessuno - testo semplice senza intestazione binaria; identificato dall'estensione del file e dalla struttura delle righe chiave=valore |
| Sequenze di escape supportate | \n, \t, \r, \\, \ (spazio protetto in chiavi/valori), \uXXXX |
| Sviluppatore / manutentore | Sun Microsystems / Oracle (parte della piattaforma Java) |
| Distribuzione comune | Inclusi come risorse del classpath all'interno di archivi JAR o WAR; caricati a runtime tramite getResourceAsStream() |
| Adozione nell'ecosistema | Utilizzato da Java SE, Spring Framework, Android (legacy), Apache Ant, Maven e molti strumenti di terze parti |
| Rilasciato | 1996 (Java 1.0, java.util.Properties) |
| Standard aperto | Sì · royalty-free |
| Specifica | docs.oracle.com |
Conversioni PROPERTIES
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PROPERTIES.