Les options de l'API principale de JDT contrôlent le comportement des fonctions principales, telles que le compilateur Java, le module de formatage de code, l'assistant de code et d'autres comportements principaux. Les API permettant d'accéder aux options sont définies dans JavaCore. L'accès aux options peut être réalisé comme s'il s'agissait d'un groupe :
L'accès aux options peut être également réalisé individuellement à l'aide d'un nom de chaîne.
Les options sont stockées en tant que table de hachage de toutes les options configurables connues et de leurs valeurs. Des constantes auxiliaires ont été définies sur JavaCore pour chaque ID d'option et ses valeurs constantes possibles.
Le fragment de code suivant restaure les valeurs par défaut de toutes les options
principales, excepté une (COMPILER_PB_DEPRECATION
) qui est
définie de manière spécifique.
// Obtenir les options courantes
Hashtable options = JavaCore.getDefaultOptions();
// Modifier la valeur d'une option
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Définir les nouvelles options
JavaCore.setOptions(options);
Le fragment de code suivant conserve la valeur des options courantes et n'en
modifie qu'une (COMPILER_PB_DEPRECATION
) :
// Obtenir les options courantes
Hashtable options = JavaCore.getOptions();
// Modifier la valeur d'une option
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Définir les nouvelles options
JavaCore.setOptions(options);
Les valeurs des options peuvent être remplacées par projet à l'aide du protocole de IJavaProject.
Le fragment de code suivant extrait la valeur d'une option (COMPILER_PB_DEPRECATION
)
pour un projet spécifique de deux manières différentes. Le paramètre
booléen contrôle si seules les options spécifiques au projet doivent être
renvoyées dans une requête ou si les valeurs des options du projet doivent
être fusionnées avec celles contenues dans JavaCore.
// Obtention du projet IJavaProject project = ...; // Vérifier si la valeur d'une option a été définie dans ce projet String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false); if (value == null) { // aucune option spécifique n'a été définie sur le projet ... } // Obtention de la valeur d'une option à partir de ce projet. Utiliser la valeur de // JavaCore si aucune valeur n'est spécifiée pour le projet String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);
Les tableaux suivants décrivent les options disponibles de l'API principale de JDT. L'ID d'option est indiqué entre parenthèses et la valeur par défaut figure en caractères gras italiques.
Description | Valeurs |
---|---|
Génération de l'attribut de débogage des variables locales (COMPILER_LOCAL_VARIABLE_ATTR) | |
La génération de cet attribut permet d'afficher les noms des variables locales dans le débogueur, uniquement aux emplacements auxquels des variables sont définitivement affectées (le fichier .class est alors plus volumineux) | GENERATE |
DO_NOT_GENERATE | |
Génération de l'attribut de débogage des numéros de ligne (COMPILER_LINE_NUMBER_ATTR) | |
La génération de cet attribut permet de mettre en évidence le code source dans le débogueur (le fichier .class est alors plus volumineux). | GENERATE |
DO_NOT_GENERATE | |
Génération de l'attribut de débogage du source (COMPILER_SOURCE_FILE_ATTR) | |
La génération de cet attribut permet au débogueur de présenter le code source correspondant. | GENERATE |
DO_NOT_GENERATE | |
Conservation des variables locales inutilisées (COMPILER_CODEGEN_UNUSED_LOCAL) | |
Si vous n'activez pas cette option, le compilateur supprime les variables locales non utilisées (c'est-à-dire jamais lues), ce qui risque de nuire au débogage. | PRESERVE |
OPTIMIZE_OUT | |
Définition d'une plateforme Java cible (COMPILER_CODEGEN_TARGET_PLATFORM) | |
Pour des motifs de compatibilité binaire, les fichiers .class peuvent être référencés avec certaines versions de machines virtuelles et ultérieures. Notez que la cible "1.4" nécessite également de passer au mode de conformité "1.4". | VERSION_1_1 |
VERSION_1_2 | |
VERSION_1_3 | |
VERSION_1_4 | |
Signalement d'un code inaccessible (COMPILER_PB_UNREACHABLE_CODE) | |
Un code inaccessible peut être éventuellement signalé comme une erreur, un avertissement ou peut être tout simplement ignoré. La génération de bytecode éliminera toujours cette erreur. | ERROR |
WARNING | |
IGNORE | |
Signalement d'une instruction d'importation incorrecte (COMPILER_PB_INVALID_IMPORT) | |
Une instruction d'importation qui ne peut pas être résolue peut éventuellement être signalée comme une erreur, un avertissement ou peut être ignorée. | ERROR |
WARNING | |
IGNORE | |
Signalement d'une tentative de remplacement d'une méthode package-default (COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD) | |
Une méthode par défaut de package n'est pas visible dans un package différent et ne peut donc pas être remplacée. Lorsque cette option est activée, le compilateur signale ce scénario comme une erreur ou un avertissement. | ERROR |
WARNING | |
IGNORE | |
Signalement d'une méthode contenant un nom de constructeur (COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME) | |
Le fait d'insérer un nom de constructeur dans une méthode est considéré habituellement comme mauvais. Lorsque cette option est activée, le compilateur signale ce scénario comme une erreur ou un avertissement. | ERROR |
WARNING | |
IGNORE | |
Signalement d'un usage déconseillé (COMPILER_PB_DEPRECATION) | |
Lorsque cette option est activée, le compilateur signale l'utilisation d'une API déconseillée comme une erreur ou un avertissement. | ERROR |
WARNING | |
IGNORE | |
Signalement d'un usage déconseillé dans un code obsolète (COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE) | |
Lorsque cette option est activée, le compilateur signale l'utilisation d'une API déconseillée comme une erreur ou un avertissement. | ENABLED |
DISABLED | |
Signalement du bloc catch masqué (COMPILER_PB_HIDDEN_CATCH_BLOCK) | |
En local avec une instruction try, certains blocs catch peuvent en masquer d'autres, par exemple
try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {}.Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement pour les blocs catch masqués, qui correspondent à des exceptions contrôlées |
ERROR |
WARNING | |
IGNORE | |
Signalement d'une variable locale inutilisée (jamais lue) (COMPILER_PB_UNUSED_LOCAL) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lié aux variables locales inutilisées (c'est-à-dire des variables qui ne sont jamais lues) | ERROR |
WARNING | |
IGNORE | |
Signalement d'un paramètre inutilisé (jamais lu) (COMPILER_PB_UNUSED_PARAMETER) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lié aux paramètres de méthode non utilisés (c'est-à-dire des paramètres qui ne sont jamais lus) | ERROR |
WARNING | |
IGNORE | |
Signalement d'un paramètre inutilisé (jamais lu) si une méthode abstraite est implémentée (COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT) | |
Lorsque cette option est activée, le compilateur signale les paramètres inutilisés (jamais lus) dans les implémentations de méthode abstraite. | ENABLED |
DISABLED | |
Signalement d'un paramètre inutilisé (jamais lu) si une méthode concrète est remplacée (COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE) | |
Lorsque cette option est activée, le compilateur signale les paramètres inutilisés (jamais lus) dans les méthodes remplaçant les méthodes concrètes. | ENABLED |
DISABLED | |
Signalement d'une référence d'importation non utilisée (jamais lue) (COMPILER_PB_UNUSED_IMPORT) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lié à une référence d'importation non utilisée | ERROR |
WARNING | |
IGNORE | |
Signalement de membres privés non utilisés (COMPILER_PB_UNUSED_PRIVATE_MEMBER) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement, chaque fois qu'une méthode ou une zone privée est déclarée, mais jamais utilisée dans la même unité. | ERROR |
WARNING | |
IGNORE | |
Signalement d'émulation d'accès synthétique (COMPILER_PB_SYNTHETIC_ACCESS_EMULATION) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il émule l'accès à un membre inaccessible d'un type conteneur. Ce type d'accès peut influer sur les performances. | ERROR |
WARNING | |
IGNORE | |
Signalement d'un littéral chaîne non externalisé (COMPILER_PB_NON_NLS_STRING_LITERAL) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lié au littéral chaîne non externalisé (c'est-à-dire non balisé avec //$NON-NLS-<n>$) | ERROR |
WARNING | |
IGNORE | |
Signalement d'utilisation de 'assert' comme identificateur (COMPILER_PB_ASSERT_IDENTIFIER) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lorsque 'assert' est utilisé comme identificateur (mot clé réservé en version 1.4) | ERROR |
WARNING | |
IGNORE | |
Signalement d'une référence non statique à un un membre statique (COMPILER_PB_STATIC_ACCESS_RECEIVER) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement, chaque fois qu'une zone ou une méthode statique est accédée avec un récepteur d'expression. | ERROR |
WARNING | |
IGNORE | |
Signalement d'affectation sans effet (COMPILER_PB_NO_EFFECT_ASSIGNMENT) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement, chaque fois qu'une affectation est sans effet (par exemple, 'x = x'). | ERROR |
WARNING | |
IGNORE | |
Signalement d'une méthode d'interface incompatible avec des méthodes non héritées (COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement, chaque fois qu'une interface définit une méthode incompatible avec une méthode d'objet non héritée. | ERROR |
WARNING | |
IGNORE | |
Signalement de l'utilisation des expressions char[] dans des concaténations de chaînes (COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION) | |
Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement, chaque fois qu'une expression char[] est utilisée dans des concaténations de chaînes (par exemple, "hello" + new char[]{'w','o','r','l','d'}), | ERROR |
WARNING | |
IGNORE | |
Définition du mode de compatibilité source (COMPILER_SOURCE) | |
Indique si la compatibilité source est 1.3 ou 1.4. A partir de l.4, 'assert' est un mot clé réservé au support de la vérification. Notez également que lorsque vous passez en mode 1.4, la machine virtuelle cible doit être définie à "1.4" et le mode de conformité à "1.4". | VERSION_1_3 |
VERSION_1_4 | |
Paramétrage du niveau de conformité (COMPILER_COMPLIANCE) | |
Sélectionnez le niveau de conformité du compilateur. En mode "1.3", le niveau de la source et de la cible ne doivent pas dépasser "1.3". | VERSION_1_3 |
VERSION_1_4 | |
Nombre maximal d'erreurs signalées par unité de compilation (COMPILER_PB_MAX_PER_UNIT) | |
Indiquez le nombre maximum d'erreurs signalées pour chaque unité de compilation (si vous entrez zéro, toutes les erreurs sont signalées). | entier positif. La valeur par défaut est 100 |
Définition des balises de tâche automatique (COMPILER_TASK_TAGS) | |
Si la balise n'est pas vide, le compilateur émet un marqueur de tâche chaque fois qu'il rencontre l'une des balises correspondantes dans un commentaire en code source Java. Les messages de tâche générés incluront la balise et s'étendront jusqu'au séparateur de ligne suivant ou à la fin du commentaire et seront rognés. | {<tag>[,<tag>]*}. La valeur par défaut est "" |
Définition des priorités de tâche automatique (COMPILER_TASK_PRIORITIES) | |
Parallèlement aux balises de tâche automatique, cette liste définit les priorités (élevée, normale ou faible) des marqueurs de tâche émis par le compilateur. Si la valeur par défaut est spécifiée, la priorité de chaque marque de tâche est "NORMALE". | {<priority>[,<priority>]*}. La valeur par défaut est "" |
Description | Valeurs |
---|---|
Spécification de filtres de contrôle de copie de ressources (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER) | |
Indiquez des filtres de contrôle du processus de copie de ressources. (<nom> est un modèle de nom de fichier (seul le caractère générique * est admis) ou le nom d'un dossier qui se termine par '/') | {<nom>[,<nom>]*}. La valeur par défaut est "" |
Abandon lorsque le chemin d'accès aux classes est incorrect (CORE_JAVA_BUILD_INVALID_CLASSPATH) | |
La génération s'arrête si le chemin d'accès aux classes est non valide | ABORT |
IGNORE | |
Vidages du ou des dossier(s) de sortie (CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER) | |
Indiquez si JavaBuilder peut vider les dossiers de sortie lors de l'exécution des opérations de compilation complète. | CLEAN |
IGNORE |
Description | Valeurs |
---|---|
Calcul de l'ordre de compilation du projet (CORE_JAVA_BUILD_ORDER) | |
Indique si JavaCore doit imposer que l'ordre de compilation du projet respecte les conditions préalables du chemin de classe. Lorsque vous le demandez, ce calcul prévaut sur l'ordre par défaut de la plateforme (en fonction des préférences du projet). | COMPUTE |
IGNORE | |
Spécification du format de codage source par défaut (CORE_ENCODING) | |
Affichez le format de codage des sources compilées. Ce paramètre en lecture seule équivaut à ResourcesPlugin.getEncoding(). | tout nom de codage pris en charge. La valeur par défaut est celle de la plateforme |
Signalement de chemin de classe incomplet (CORE_INCOMPLETE_CLASSPATH) | |
Indiquez la gravité du problème signalé lorsqu'une entrée du chemin de classe n'existe pas, est illégitime ou invisible (par exemple, si un projet référencé est fermé). | ERROR |
WARNING | |
Signalement d'un cycle de chemin de classe (CORE_CIRCULAR_CLASSPATH) | |
Indiquez la gravité du problème signalé lorsqu'un problème est impliqué dans un cycle. | ERROR |
WARNING | |
Activation de l'utilisation des schémas d'exclusion de chemin de classe (CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS) | |
Si cette option est "désactivée", aucune entrée d'un chemin de classe de projet ne peut être associée à un schéma d'exclusion. | ENABLED |
DISABLED | |
Activation de l'utilisation de plusieurs emplacements de sortie de chemin de classe (CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS) | |
Si cette option est "désactivée", aucune entrée d'un chemin de classe de projet ne peut être associée à un emplacement de sortie spécifique, empêchant ainsi l'utilisation de plusieurs emplacements de sortie. | ENABLED |
DISABLED |
Description | Valeurs |
---|---|
Insertion d'une nouvelle ligne avant une accolade ouvrante (FORMATTER_NEWLINE_OPENING_BRACE) | |
Si vous cochez cette case, une nouvelle ligne est insérée avant chaque accolade ouvrante | INSERT |
DO_NOT_INSERT | |
Insertion d'une nouvelle ligne dans une instruction de contrôle (FORMATTER_NEWLINE_CONTROL) | |
Si vous cochez cette case, une nouvelle ligne est ajoutée entre } et else, catch, finally | INSERT |
DO_NOT_INSERT | |
Effacement des lignes vierges (FORMATTER_CLEAR_BLANK_LINES) | |
Si vous cochez la case Clear all, toutes les lignes vierges sont effacées. Si vous cochez Preserve one, une ligne est conservée et toutes les autres sont supprimées. | CLEAR_ALL |
PRESERVE_ONE | |
Insertion d'une nouvelle ligne entre Else/If (FORMATTER_NEWLINE_ELSE_IF) | |
Si vous cochez cette case, une ligne vierge est insérée entre "else" et "if" lorsque ces instructions sont contiguës. Sinon, "else" et "if" sont conservées sur la même ligne si possible. | INSERT |
DO_NOT_INSERT | |
Insertion d'une nouvelle ligne dans un bloc vide (FORMATTER_NEWLINE_EMPTY_BLOCK) | |
Si vous cochez cette case, un passage à la ligne est inséré entre { et }, si } n'est pas suivi d'un mot clé. | INSERT |
DO_NOT_INSERT | |
Fractionnement des lignes dépassant la longueur configurée (FORMATTER_LINE_SPLIT) | |
Fractionnement des longues lignes (dépassant la longueur configurable). La valeur 0 désactive le fractionnement des lignes | entier positif. La valeur par défaut est 80 |
Compactage d'affectation (FORMATTER_COMPACT_ASSIGNMENT) | |
Les affectations peuvent être formatées de façon asymétriques, comme suit 'int x= 2;' ; si vous ne cochez pas la case, un espace est inséré avant l'opérateur d'affectation | COMPACT |
NORMAL | |
Définition du caractère de retrait (FORMATTER_TAB_CHAR) | |
Sélectionnez cette option pour effectuer le retrait à l'aide de tabulations ou d'espaces | TAB |
SPACE | |
Définition du nombre d'espaces de retrait (FORMATTER_TAB_SIZE) | |
Si vous utilisez des espaces, nombre d'espaces à utiliser pour chaque retrait. | entier positif. La valeur par défaut est 4 |
Insertion d'espace dans une expression CAST (FORMATTER_SPACE_CASTEXPRESSION) | |
Lors de l'insertion, un espace est ajouté entre le type et l'expression dans une expression cast. | INSERT |
DO_NOT_INSERT |
Description | Valeurs |
---|---|
Activate Visibility Sensitive Completion (CODEASSIST_VISIBILITY_CHECK) | |
Lorsque vous activez cette option, l'achèvement d'une opération ne vous montre que ce que vous êtes autorisé à voir (par exemple, vous n'avez pas de visibilité des méthodes privées d'une super classe). | ENABLED |
DISABLED | |
Automatic Qualification of Implicit Members (CODEASSIST_IMPLICIT_QUALIFICATION) | |
Lorsque vous activez cette option, l'achèvement qualifie automatiquement l'achèvement des références de zone et des expressions de message implicites. | ENABLED |
DISABLED | |
Définition des préfixes des noms de zone (CODEASSIST_FIELD_PREFIXES) | |
Si les préfixes ne sont pas vides, le nom de zone commencera par l'un des préfixes proposés. | {<prefix>[,<prefix>]*}. La valeur par défaut est "" |
Définition des préfixes des noms de zone statique (CODEASSIST_STATIC_FIELD_PREFIXES) | |
Si les préfixes ne sont pas vides, le nom de zone statique commencera par l'un des préfixes proposés. | {<prefix>[,<prefix>]*}. La valeur par défaut est "" |
Définition des préfixes des noms de variable locale (CODEASSIST_LOCAL_PREFIXES) | |
Si les préfixes ne sont pas vides, le nom de variable locale commencera par l'un des préfixes proposés. | {<prefix>[,<prefix>]*}. La valeur par défaut est "" |
Définition des préfixes des noms d'argument (CODEASSIST_ARGUMENT_PREFIXES) | |
Si les préfixes ne sont pas vides, le nom d'argument commencera par l'un des préfixes proposés. | {<prefix>[,<prefix>]*}. La valeur par défaut est "" |
Définition des suffixes des noms de zone (CODEASSIST_FIELD_SUFFIXES) | |
Si les suffixes ne sont pas vides, le nom de zone se terminera par l'un des suffixes proposés. | {<suffix>[,<suffix>]*}. La valeur par défaut est "" |
Définition des suffixes des noms de zone statique (CODEASSIST_STATIC_FIELD_SUFFIXES) | |
Si les suffixes ne sont pas vides, le nom de zone statique se terminera par l'un des suffixes proposés. | {<suffix>[,<suffix>]*}. La valeur par défaut est "" |
Définition des suffixes des noms de variable locale (CODEASSIST_LOCAL_SUFFIXES) | |
Si les suffixes ne sont pas vides, le nom de variable locale se terminera par l'un des suffixes proposés. | {<suffix>[,<suffix>]*}. La valeur par défaut est "" |
Définition des suffixes des noms d'argument (CODEASSIST_ARGUMENT_SUFFIXES) | |
Si les suffixes ne sont pas vides, le nom d'argument se terminera par l'un des suffixes proposés. | {<suffix>[,<suffix>]*}. La valeur par défaut est "" |