La classe java.util.Properties

La javadoc de la classe java.util.Properties

is encoded in ISO 8859-1 character encoding. Characters that cannot be directly represented in this encoding can be written using Unicode escapes ; only a single 'u' character is allowed in an escape sequence. The native2ascii tool can be used to convert property files to and from other character encodings.

Le tutoriel JAVA de SUN au sujet des Properties et comment accéder au System Properties dans les Applets.

Comment encoder les .properties

Vous devez encoder correctement vos caractères au standard Unicode soit manuellement soit à l'aide l'outil native2ascii.exe disponible dans les jdk :

Par exemple :

"C:\Program Files\Java\jdk1.6.0_13\bin\native2ascii.exe" F:\java_workspace\MyTourbook\messages_fr.properties.avantConvert F:\java_workspace\MyTourbook\messages_fr.properties.apresConvert 
"C:\Program Files\Java\jdk1.6.0_13\bin\native2ascii.exe" F:\java_workspace\MyTourbook\net.tourbook\plugin_fr.properties.avantConvert  F:\java_workspace\MyTourbook\net.tourbook\plugin_fr.properties.apresConvert
"C:\Program Files\Java\jdk1.6.0_13\bin\native2ascii.exe" F:\java_workspace\MyTourbook\net.tourbook\src\net\tourbook\mapping\messages_fr.properties.avantConvert F:\java_workspace\MyTourbook\net.tourbook\src\net\tourbook\mapping\messages_fr.properties.apresConvert
"C:\Program Files\Java\jdk1.6.0_13\bin\native2ascii.exe" F:\java_workspace\MyTourbook\net.tourbook\src\net\tourbook\ui\messages_fr.properties.avantConvert F:\java_workspace\MyTourbook\net.tourbook\src\net\tourbook\ui\messages_fr.properties.apresConvert
native2ascii - Native-à-ASCII Converter

    Converts a file with native-encoded characters (characters which are non-Latin 1 and non-Unicode) to one with Unicode-encoded characters. 
    Conversion d'un fichier encodé avec des caractères (les caractères qui sont non-Latin 1 et de la non-Unicode) à l'un de caractères Unicode encodés.

SYNOPSIS SYNOPSIS

     native2ascii  [options] [inputfile [outputfile]] 

DESCRIPTION DESCRIPTION

    The Java compiler and other Java tools can only process files which contain Latin-1 and/or Unicode-encoded (\udddd notation) characters. native2ascii converts files which contain other character encodings into files containing Latin-1 and/or Unicode-encoded charaters.
    Le compilateur Java Java et d'autres outils ne peuvent traiter les dossiers qui contiennent Latin-1 et / ou en codage Unicode (\ udddd notation) caractères. native2ascii convertit les fichiers qui contiennent d'autres codages de caractères dans des fichiers contenant de Latin-1 et / ou Unicode encodés charactères.

    If outputfile is omitted, standard output is used for output. If, in addition, inputfile is omitted, standard input is used for input. 
    Si outputfile est omis, la sortie standard est utilisé pour les sorties. Si, en outre, inputfile est omis, l'entrée standard est utilisée pour l'entrée.

OPTIONS OPTIONS

    -reverse
        Perform the reverse operation: convert a file with Latin-1 and/or Unicode encoded characters to one with native-encoded characters.
        Effectuer l'opération inverse: convertir un fichier de Latin-1 et / ou de codage de caractères Unicode à un avec des caractères encodés.

    -encoding encoding_name
        Specify the encoding name which is used by the conversion procedure. The default encoding is taken from System property file.encoding. The encoding_name string must be taken from the first column of the table of supported encodings in the Supported Encodings document.
        Précisez le nom de l'encodage qui est utilisé par la procédure de conversion. Le codage par défaut est la propriété de System file.encoding. Le encoding_name chaîne doivent être prises à partir de la première colonne de la table de codage dans l'encodage supporté du document.
    -J option -J option
        Pass option to the Java virtual machine, where option is one of the options described on the reference page for the java application launcher. For example, -J-Xms48m sets the startup memory to 48 megabytes. 
        Pass option de la machine virtuelle Java, où l'option est l'une des options décrites sur la page de référence pour le lanceur d'applications java. Par exemple,-J-Xms48m définit le démarrage de la mémoire à 48 mégaoctets.

Codes Unicode pour les accents :

à = \u00E0
á = \u00E1
â = \u00E2
ã = \u00E3
ä = \u00E4
å = \u00E5
æ = \u00E6
ç = \u00E7
è = \u00E8
é = \u00E9
ê = \u00EA
ë = \u00EB
ì = \u00EC
í = \u00ED
î = \u00EE
ï = \u00EF
ð = \u00F0
ñ = \u00F1
ò = \u00F2
ó = \u00F3
ô = \u00F4
õ = \u00F5
ö = \u00F6
÷ = \u00F7
ø = \u00F8
ù = \u00F9
ú = \u00FA
û = \u00FB
ü = \u00FC
ý = \u00FD

Pour les autres accents consultez sur wikipédia :

For example é can be represented in Unicode as U+0065 (Latin small letter e) followed by U+0301 (combining acute) but it can also be represented as the precomposed character U+00E9 (Latin small letter e with acute). So in many cases, users have many ways of encoding the same character. To deal with this, Unicode provides the mechanism of canonical equivalence.
# French (missing Œ, œ and the very rare Ÿ; they are generally replaced by 'OE' and 'oe' without the normally required ligature, and 'Y' without the diaeresis)

   * Note that Windows-1252 and ISO-8859-15 do contain these

Relationship to ISO/IEC 8859-15

Although ISO/IEC 8859-1 has enough characters for most French text, it is missing a few letters that are less common. It is also missing a single-glyph representation for the letter IJ, two Finnish letters used for transcription of some foreign names and in a few  loanwords (Š and Ž), typographic quotation marks and dashes, and common symbols such as the euro sign (€) and dagger (†).

In order to provide some of these characters, ISO/IEC 8859-15 was developed as an update of ISO/IEC 8859-1. This required, however, the removal of some infrequently-used characters from ISO/IEC 8859-1, including fraction symbols and letter-free diacritics: ¤, ¦, ¨, ´, ¸, ¼, ½, and ¾.

Egament vous pouvez vous inspirer de HTML 5 Draft Recommendation

Networking Properties pour les paramètres réseau

Dans le cadre de la limitation du Timeout de socket, lors de la lecture réseau tel que des Web Services, regardez par exemple la valeur sun.net.client.defaultConnectTimeout

.properties et Jboss

Externalisation des fichier properties d'une application

Properties props = new Properties();
InputStream propStream = Mailer.class.getResourceAsStream(configFileName);
props.load(propStream);

Classe pour rechercher les données du fichier properties

// détermine le fichier de Configuration
	private static PropertyResourceBundle properties = (PropertyResourceBundle)PropertyResourceBundle.getBundle("parlement.application");

Variable environnement JBoss

Définir des propriétés systeme au lancement de JBoss via l'option Java "-D".

Une bonne solution pour configurer ses applications en dehors des fichiers de déploiement inclus dans les archives, est d'utiliser le PropertiesService avec un fichier de propriétés dédié à votre application pour lister les variables d'environnement.

Créer un fichier <nomApp>.properties dans le répertoire conf (JBOSS_HOME/default/conf par défaut) où tu liste les différentes variables d'environnement nécessaires à ton application sous la forme :

clé1=valeur1
clé2=valeur2

Puis modifier le fichier properties-service.xml (dans le répertoire où est deployé ton application JBOSS_HOME/default/deploy par exemple) : en ajoutant les lignes suivantes :


<!-- ==================================================================== -->
  <!-- System Properties Service                                            -->
  <!-- ==================================================================== -->
 
  <!--
     | Allows rich access to system properties.
   -->
 
  <mbean code="org.jboss.varia.property.SystemPropertiesService" 
	 name="jboss:type=Service,name=SystemProperties">
 
    <!-- 
       | Load properties from each of the given comma seperated URLs
 
    <attribute name="URLList">
      http://somehost/some-location.properties,
      ./conf/somelocal.properties
    </attribute>
 
    -->
 
    <attribute name="URLList">
      ./conf/<nomApp>.properties
    </attribute>

Vous pouvez ensuite accéder aux variables dans votre application :

System.getProperty("clé1");

Pb de fichiers .properties

.properties dans le répertoire WEB-INF/classes