Section courante

A propos

Section administrative du site

Propriétés du système

Le comportement d'exécution de la bibliothèque libgcj peut être modifié en définissant certaines propriétés système. Ces propriétés peuvent être compilées dans le programme à l'aide de l'option -Dname[=value] de gcj ou en les définissant explicitement dans le programme en appelant la méthode java.lang.System.setProperty(). Certaines propriétés système ne sont utilisées qu'à des fins d'information (comme donner un numéro de version ou un nom d'utilisateur). Un programme peut inspecter la valeur actuelle d'une propriété en appelant la méthode java.lang.System.getProperty().

Propriétés standards

Les propriétés suivantes se trouvent normalement dans toutes les implémentations des bibliothèques principales du langage Java :

Propriété Description
java.version Le numéro de version de libgcj.
java.vendor Défini sur «The Free Software Foundation, Inc.».
java.vendor.url Défini sur http://gcc.gnu.org/java/.
java.home Le répertoire où gcj a été installé. Tiré de l'option --prefix donnée à configure.
java.class.version Le numéro de version du format de classe pris en charge par l'interpréteur de code d'octet libgcj. (Actuellement '46.0')
java.vm.specification.version La version de spécification de la machine virtuelle implémentée par libgcj. (Actuellement '1.0')
java.vm.specification.vendor Le nom du concepteur de spécifications de la machine virtuelle.
java.vm.specification.name Le nom de la spécification de la machine virtuelle (défini sur «Java Virtual Machine Specification»).
java.vm.version Le numéro de version gcj.
java.vm.vendor Défini sur «The Free Software Foundation, Inc.»
java.vm.name Défini sur «GNU libgcj».
java.specification.version La version de spécification de l'environnement d'exécution implémentée par libgcj. (Actuellement réglé sur '1.3')
java.specification.vendor Le concepteur de spécifications d'environnement d'exécution.
java.specification.name Le nom de la spécification de l'environnement d'exécution (fixé sur «Java Platform API Specification»).
java.class.path Les chemins (fichiers jar, fichiers zip et répertoires) utilisés pour trouver les fichiers de classe.
java.library.path Chemin de répertoire utilisé pour rechercher des bibliothèques natives.
java.io.tmpdir Le répertoire utilisé pour mettre les fichiers temporaires.
java.compiler Nom du compilateur Just In Time à utiliser par l'interpréteur de bytecode. Actuellement non utilisé dans libgcj.
java.ext.dirs Répertoires contenant des fichiers jar avec des bibliothèques supplémentaires. Sera utilisé lors de la résolution des classes.
java.protocol.handler.pkgs Un '|' liste séparée de noms de packages utilisée pour rechercher des classes mettant en oeuvre des gestionnaires pour java.net.URL.
java.rmi.server.codebase Une liste d'URL utilisées par java.rmi.server.RMIClassLoader pour charger des classes.
jdbc.drivers Une liste de noms de classes étant chargées par le java.sql.DriverManager lors de son démarrage.
file.separator Le séparateur utilisé lorsque des répertoires sont inclus dans un nom de fichier (normalement '/' ou '\' ).
file.encoding Le codage de caractères par défaut utilisé lors de la conversion des fichiers natifs de la plate-forme en Unicode (généralement défini sur '8859_1').
path.separator Le séparateur standard utilisé lorsqu'une chaîne de caractères contient plusieurs chemins (normalement ':' ou ';'), la chaîne n'est généralement pas un caractère valide à utiliser dans les noms de répertoire normaux.)
line.separator Le séparateur de ligne par défaut utilisé sur la plate-forme (normalement '\n', '\r' ou une combinaison de ces deux caractères).
policy.provider Le nom de classe utilisé pour le fournisseur de stratégie par défaut renvoyé par java.security.Policy.getPolicy.
user.name Le nom de l'utilisateur exécutant le programme. Peut être le nom complet, le nom de connexion ou vide si inconnu.
user.home Le répertoire par défaut dans lequel placer les fichiers spécifiques à l'utilisateur.
user.dir Le répertoire de travail actuel à partir duquel le programme a été lancé.
user.language La langue par défaut utilisée par la classe java.util.Locale.
user.region La région par défaut utilisée par la classe java.util.Local.
user.variant La variante par défaut de la langue et de la région locale utilisée.
user.timezone Le fuseau horaire par défaut utilisé par la classe java.util.TimeZone.
os.name Nom du système d'exploitation/noyau sur lequel le programme s'exécute.
os.arch Le matériel sur lequel vous fonctionnez.
os.version Le numéro de version du système d'exploitation/noyau.
awt.appletWarning La chaîne de caractères à afficher lorsqu'une applet non approuvée est affichée. Renvoyé par java.awt.Window.getWarningString() lorsque la fenêtre est "non sécurisée".
awt.toolkit Le nom de classe utilisé pour initialiser le java.awt.Toolkit par défaut. La valeur par défaut est gnu.awt.gtk.GtkToolkit.
http.proxyHost Nom de l'hôte proxy pour les connexions http.
http.proxyPort Numéro de port à utiliser lorsqu'un hôte proxy est utilisé.

Propriétés du chemin de classe GNU

libgcj est basé sur le GNU Classpath (Essential Libraries for Java), un projet GNU pour créer des bibliothèques de classes de base gratuites à utiliser avec des machines virtuelles et des compilateurs pour le langage de programmation Java. Les propriétés suivantes sont communes aux bibliothèques basées sur GNU Classpath :

Propriété Description
gcj.dumpobject Active le débogage de la sérialisation d'affichage par les classes java.io.ObjectInput et java.io.ObjectOutput lorsqu'elles sont définies sur autre chose que la chaîne de caractères vide. Utilisé uniquement lors de l'exécution d'une version de débogage de la bibliothèque.
gnu.classpath.vm.shortname Il s'agit d'un nom succinct de la machine virtuelle. Pour libgcj, ce sera toujours 'libgcj'.
gnu.classpath.home.url Une URL de base utilisée pour rechercher des fichiers de propriétés système (par exemple, "classpath.security"). Par défaut, il s'agit d'une URL «file:» pointant vers le répertoire «lib» sous «java.home».

Propriétés d'exécution de libgcj

Les propriétés suivantes sont spécifiques à l'environnement d'exécution libgcj et ne se trouvent normalement pas dans d'autres bibliothèques principales pour le langage de programmation Java.

Propriété Description
java.fullversion La combinaison de java.vm.name et java.vm.version.
java.vm.info Identique à java.fullversion.
impl.prefix Utilisé par la classe java.net.DatagramSocket lorsqu'il est défini sur autre chose que la chaîne vide. Lorsqu'il est défini, tous les DatagramSockets nouvellement créés essaieront de charger une classe java.net.[impl.prefix]DatagramSocketImpl au lieu de la classe java.net.PlainDatagramSocketImpl normale.
gnu.gcj.progname La classe ou le nom binaire qui a été utilisé pour appeler le programme. Ce sera le nom de la classe "principale" dans le cas où le frontal gij est utilisé, ou le nom d'un binaire de programme dans le cas où une application est compilée en un binaire natif.
gnu.gcj.user.realname Le vrai nom de l'utilisateur, extrait du fichier de mots de passe. Cela ne contient pas toujours uniquement le nom de l'utilisateur (car certains sites mettent des informations supplémentaires dans ce champ). De plus, cette propriété n'est pas disponible sur toutes les plateformes.
gnu.gcj.runtime.NameFinder.use_addr2line Si un processus externe, addr2line, doit être utilisé pour déterminer les informations de numéro de ligne lors du traçage de la pile. Définir ceci sur false peut supprimer les numéros de ligne lors de l'affichage des traces de pile et lors de l'utilisation de l'infrastructure java.util.logging. Toutefois, les performances peuvent s'améliorer considérablement pour les applications affichant des traces de pile ou effectuent fréquemment des appels de journalisation.
gnu.gcj.runtime.NameFinder.show_raw Indique si l'adresse d'un cadre de pile doit être imprimée lorsque le numéro de ligne n'est pas disponible. Définir ceci sur true entraînera l'affichage du nom de l'objet et du déplacement dans cet objet lorsqu'aucun numéro de ligne n'est disponible. Cela permet le décodage hors ligne des traces de pile si les informations de débogage nécessaires sont disponibles. La valeur par défaut est false, aucune adresse brute n'est affichée.
gnu.gcj.runtime.NameFinder.remove_unknown Indique si les cadres de pile pour le code non Java doivent être inclus dans une trace de pile. La valeur par défaut est true, les cadres de pile pour le code non-java sont supprimés. Définir ceci sur false entraînera l'affichage de tous les cadres de pile non Java en plus des cadres pour le code Java.
gnu.gcj.runtime.VMClassLoader.library_control Cela contrôle la façon dont les bibliothèques partagées sont automatiquement chargées par le chargeur de classe intégré. Si cette propriété est définie sur "full", une recherche complète est effectuée pour chaque classe demandée. Si cette propriété est définie sur "cache", toutes les recherches ayant échoué sont mises en cache et ne sont pas réessayées. Si cette propriété est définie sur "never" (valeur par défaut), les recherches ne sont jamais effectuées.
gnu.gcj.runtime.endorsed.dirs Cela ressemble à la propriété standard java.endorsed.dirs, mais spécifie des répertoires supplémentaires étant recherchés après les répertoires standard approuvés. Ceci est principalement utile pour informer libgcj des bibliothèques supplémentaires étant habituellement incorporées dans le JDK et devant être chargées par le chargeur de classe bootstrap, mais ne faisant pas encore partie de libgcj lui-même pour une raison quelconque.
gnu.gcj.jit.compiler Il s'agit du chemin complet vers l'exécutable gcj devant être utilisé pour compiler les classes juste-à-temps lorsque ClassLoader.defineClass est appelé. S'il n'est pas défini, gcj ne sera pas invoqué par le runtime ; cela peut également être contrôlé via Compiler.disable.
gnu.gcj.jit.options Il s'agit d'une chaîne de caractères d'options séparées par des espaces devant être transmise à gcj en mode JIT. S'il n'est pas défini, une valeur par défaut sensible est choisie.
gnu.gcj.jit.cachedir Il s'agit du répertoire dans lequel les fichiers de bibliothèque partagée mis en cache sont stockés. S'il n'est pas défini, la compilation JIT est désactivée. Cela ne doit jamais être défini sur un répertoire accessible en écriture par tout autre utilisateur.
gnu.gcj.precompiled.db.path Il s'agit d'une séquence de noms de fichiers, chacun faisant référence à un fichier créé par gcj-dbtool. Ces fichiers seront utilisés par libgcj pour trouver les bibliothèques partagées correspondant aux classes chargées à partir du bytecode. libgcj a souvent une base de données par défaut intégrée; il peut être interrogé à l'aide de gcj-dbtool -p.


Dernière mise à jour : Samedi, le 31 octobre 2020