Compilateur Java

Cette page de préférences vous permet de configurer les différents paramètres touchant à la compilation, à la génération et à la vérification du code source Java.

Les préférences du compilateur Java sont présentées dans différentes sections :

Général

Conformité JDK

Option

Description

Valeur par défaut

Niveau de conformité du compilateur

Indique le niveau de conformité du compilateur.

1.4

Utiliser les paramètres de conformité par défaut

Si cette option est activée, les paramètres de conformité par défaut du compilateur sont appliqués.

Activée

Compatibilité des fichiers de classe générés

Indique la compatibilité des fichiers classe générés.

1.2

Compatibilité de la source

Indique la compatibilité du code source accepté.

1.3

Interdire les identifiants du type 'assert'

Lorsque cette option est activée, le compilateur émet un erreur ou un avertissement à chaque fois que 'assert' est utilisé comme identifiant (mot-clé réservé dans J2SE 1.4).

Avertissement

Interdire les identifiants du type 'enum'

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement à chaque fois que 'enum' est utilisé comme identifiant (mot-clé réservé dans J2SE 5.0).

Avertissement

Génération de fichiers de classes

Ajouter des attributs de variable aux fichiers de classes générés

Si cette option est activée, les attributs de variable sont ajoutés au fichier classe. Les noms de variables locales peuvent s'afficher ainsi dans le débogueur (aux emplacements auxquels des variables sont affectées définitivement). Le fichier .class résultant est alors plus volumineux.

Activée

Ajouter des attributs de numéro de ligne aux fichiers de classes générés

Si cette option est activée, les données de numéro de ligne sont ajoutées au fichier classe. Cela permet de mettre en évidence le code source dans le débogueur.

Activée

Ajouter le nom du fichier source au fichier de classe généré

Si cette option est activée, le nom du fichier source est ajouté au fichier classe. Le débogueur peut ainsi présenter le code source correspondant.

Activée

Conserver les variables locales inutilisées

Si cette option est activée, les variables locales non utilisées (c'est-à-dire jamais lues) ne sont pas éliminées du fichier classe. Leur élimination peut éventuellement altérer le débogage.

Activée

Intégrer les blocs finally

Lorsque cette option est activée, les blocs finally sont intégrés aux fichiers de classes générés. Les performances s'en voient améliorées, mais les fichiers de classes sont susceptibles d'être plus lourds.

Désactivée

Génération

Général

Option

Description

Valeur par défaut

Nombre maximal de problèmes signalés par unité de compilation

Indique le nombre de problèmes à signaler par unité de compilation.

100

Activer les schémas d'exclusion dans les dossiers source

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.

Activée

Activer les emplacements de sortie multiples pour les dossiers source

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.

Activée

Problèmes de chemin de compilation

Annuler la compilation en cas d'erreurs dans le chemin de compilation

Permet d'activer l'annulation de la compilation si le chemin de classe est incorrect.

Activée

Chemin de compilation incomplet

Indique 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é).

Erreur

Dépendances circulaires

Indique la gravité du problème signalé lorsqu'un problème est impliqué dans un cycle.

Erreur

Fichiers binaires requis incompatibles

Indique la gravité du problème signalé lorsqu'un projet requiert des fichiers binaires incompatibles.

Ignorer

Dossier de sortie

Ressources dupliquées

Indique la gravité du problème signalé lorsque plusieurs occurrences d'une ressource sont copiées dans l'emplacement de sortie.

Avertissement

Vérifier les dossiers de sortie lors du nettoyage des projets

Indique si le compilateur Java est autorisé à nettoyer les fichiers de sortie lors des opérations de compilation complètes.

Activée

Ressources filtrées

Liste de modèles de nom de fichier qui ne sont pas copiés dans le dossier de sortie. 

''

Erreurs/Avertissements

Style de code

Option

Description

Valeur par défaut

Accès non statique à un membre statique

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. Une référence à un membre statique doit être qualifiée à l'aide d'un nom de type.

Avertissement

Accès indirect à un membre statique

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'une méthode ou une zone statique est accédé(e) de manière indirecte. Une zone statique d'interface doit être qualifiée avec le nom du type de déclaration.

Avertissement

Accès non qualifié à une zone d'instance

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre un accès de zone non qualifié (auquel il manque, par exemple, un 'this').

Ignorer

Bloc vide non renseigné

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une instruction de bloc vide dépourvue de commentaire explicatif.

Ignorer

Accéder à un membre inaccessible d'un type conteneur

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. Ces accès peuvent influer sur les performances.

Ignorer

Méthodes comportant un nom de constructeur

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.

Avertissement

Utilisation de chaînes non externalisées

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

Ignorer

Problèmes de programmation possibles

Classe sérialisable sans serialVersionUID

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'un type implémentant 'java.io.Serializable' ne contient pas de zone serialVersionUID.

Avertissement

Affectation sans effet (par ex. 'x = x')

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement à chaque fois qu'une affectation est sans effet (par ex. 'x = x').

Avertissement

Affectation booléenne accidentelle possible (par ex. 'if (a = b)')

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une possible affectation booléenne accidentelle (par ex. 'if (a = b)').

Avertissement

'finally' ne se termine pas normalement

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'une instruction 'finally' ne se termine pas normalement (si elle contient une instruction de retour, par ex.).

Avertissement

Instruction vide

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une instruction vide (un point-virgule superflu, par ex.).

Ignorer

Utilisation d'un tableau char dans une concaténation de chaînes

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'}

Avertissement

Blocs catch masqués

En local avec une instruction try, certains blocs catch sont susceptibles d'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.

Avertissement

Duplication de noms et conflits

La déclaration de zone masque une autre zone ou variable

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement si une déclaration de zone masque une autre zone héritée.

Ignorer

La déclaration de variable locale masque une autre zone ou variable

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement si une déclaration de variable locale masque une autre zone ou une autre variable.

Ignorer

Inclure les paramètres constructeur ou de méthode setter

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement si un paramètre constructeur ou un paramètre de méthode setter masque une autre zone ou une autre variable.

Désactivée

Paramètre de type masquant un autre type

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement si, par exemple, un paramètre de type d'une classe interne masque un type externe.

Avertissement

Méthodes remplacées mais aucun package visible

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.

Avertissement

Conflit de méthode d'interface avec la méthode d'objet protégée

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. Tant que le conflit n'est pas résolu, une telle interface ne peut pas être implémentée, par exemple :

interface I {
int clone();
}

Avertissement

Duplication de noms et conflits

API déconseillée

Lorsque cette option est activée, le compilateur signale l'utilisation d'une API déconseillée comme une erreur ou un avertissement.

Avertissement

Signaler l'utilisation d'une API déconseillée dans un code obsolète

Lorsque cette option est activée, le compilateur signale l'utilisation d'une API déconseillée dans un code obsolète. La gravité du problème est contrôlée via l'option "API déconseillée".

Désactivée

Signaler toute substitution ou implémentation d'une méthode déconseillée

Lorsque cette option est activée, le compilateur signale toute substitution ou implémentation d'une méthode déconseillée.La gravité du problème est contrôlée via l'option "API déconseillée".

Désactivée

Référence interdite (règles d'accès)

Lorsque cette option est activée, le compilateur signale toute référence interdite indiquée dans les règles d'accès.

Erreur

Référence déconseillée (règles d'accès)

Lorsque cette option est activée, le compilateur signale toute référence déconseillée indiquée dans les règles d'accès.

Avertissement

Code inutile

Variable locale jamais lue

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'une variable locale est déclarée mais n'est jamais utilisée dans sa portée.

Avertissement

Paramètre jamais lu

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'un paramètre est déclaré mais n'est jamais utilisé dans sa portée.

Ignorer

Vérifier les méthodes de substitution et d'implémentation

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'un paramètre est déclaré mais n'est jamais utilisé dans sa portée dans des méthodes de substitution ou d'implémentation.

Désactivée

Importations inutilisées

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lié à une référence d'importation non utilisée.

Avertissement

Membres locaux ou privés inutilisés

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'un membre local ou privé est déclaré mais n'est jamais utilisé dans la même unité.

Avertissement

Instruction else inutile

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une instruction else inutile (par exemple : if (condition) return; else doSomething();).

Ignorer

Opération cast ou 'instanceof' inutile

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une opération cast ou 'instanceof' inutile (par exemple : if (object instanceof Object) return;).

Ignorer

Déclaration inutile d'exception émise vérifiée

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une déclaration inutile d'exception émise.

Ignorer

Vérifier les méthodes de substitution et d'implémentation

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une déclaration inutile d'exception émise dans une méthode de substitution ou d'implémentation.

Désactivée

Options de J2SE 5.0

Opération de type générique non vérifiée

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une opération de type générique non vérifiée.

Avertissement

Paramètre de type générique déclaré avec un type final lié

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre un type lié impliquant un type final.

Avertissement

Correspondance de type inexacte pour les arguments vararg

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement lorsqu'il rencontre une correspondance de type inexacte pour les arguments vararg.

Avertissement

Conversions boxing et unboxing

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une conversion boxing ou unboxing. L'autoboxing est susceptible d'avoir une incidence négative sur les performances.

Ignorer

Annotation '@Override' manquante

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une méthode remplaçant une autre méthode implémentée et que l'annotation '@Override' est manquante.

Ignorer

Annotation '@Deprecated' manquante

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre un type obsolète dépourvu d'annotation '@Deprecated' complémentaire.

Ignorer

Annotation utilisée comme super interface

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre un type implémentant une annotation. Bien que cette pratique soit possible, elle est considérée comme incorrecte.

Avertissement

Toutes les constantes enum ne sont pas couvertes par 'switch'

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre une instruction switch ne contenant pas d'instructions case pour chaque constante enum de l'enum référencée.

Ignorer

Jetons d'avertissement non traités dans '@SuppressWarnings'

Lorsque cette option est activée, le compilateur émet une erreur ou un avertissement chaque fois qu'il rencontre un jeton d'avertissement non traité dans une annotation '@SuppressWarnings'.

Avertissement

Activer les annotations '@SuppressWarnings'

Lorsque cette option est activée, le compilateur traite les annotations '@SuppressWarnings'.

Activée

Concepts associés

Compilateur Java

Tâches associées

Génération d'un programme Java
Utilisation des chemins de compilation
Gestion des environnements JRE

Référence associée

Préférences des variables du chemin d'accès aux classes
Propriétés de chemin de compilation Java