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