Opciones del núcleo de JDT

Las opciones de control del núcleo de JDT controlan el comportamiento de las características del núcleo, como pueden ser el compilador Java, el formateador de código, la asistencia de código y otros comportamientos del núcleo. Las API que permiten acceder a las opciones están definidas en la clase JavaCore. Se puede acceder a las opciones como grupo, de esta manera: 

También se puede acceder a las opciones de manera individual mediante un nombre de tipo serie.

Las opciones están almacenadas en forma de tabla hash en la que figuran todas las opciones configurables conocidas junto con sus valores. Se han definido constantes de ayuda en JavaCore para cada ID de opción y los posibles valores de las constantes.

El siguiente fragmento de código restaura el valor de todas las opciones del núcleo para que adopten sus valores por omisión, salvo una (COMPILER_PB_DEPRECATION), que se establece de forma específica.

   // Obtener las opciones actuales
   Hashtable options = JavaCore.getDefaultOptions();
   
   // Cambiar el valor de una opción
   options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
   
   // Establecer las opciones nuevas
   JavaCore.setOptions(options);
El siguiente fragmento de código conserva el valor de las opciones actuales y modifica el de una sola (COMPILER_PB_DEPRECATION):
   // Obtener las opciones actuales
   Hashtable options = JavaCore.getOptions();
   
   // Cambiar el valor de una opción
   options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
   
   // Establecer las opciones nuevas
   JavaCore.setOptions(options);

Opciones específicas de un proyecto

Los valores de las opciones se pueden alterar temporalmente a nivel de proyecto utilizando el protocolo en la interfaz IJavaProject.

El siguiente fragmento de código recupera el valor de una opción (COMPILER_PB_DEPRECATION) para un proyecto concreto de dos maneras distintas. El parámetro booleano controla si solo se deben devolver las opciones específicas del proyecto en una consulta o bien si los valores de las opciones del proyecto se deben fusionar con los valores de JavaCore. 

   // Obtener el proyecto
   IJavaProject project = ...;

   // Ver si el valor de una opción ha sido establecido en este proyecto
   String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false);
   if (value == null) {
     // No se ha establecido ninguna opción específica en el proyecto
     ...
   }
   
   // Obtener el valor de una opción a partir de este proyecto. Usar el valor
   // procedente de JavaCore si no se ha especificado ninguno para el proyecto
   String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);

Descripciones de las opciones del núcleo de JDT

Las siguientes tablas describen las opciones disponibles del núcleo de JDT. El ID de la opción se muestra entre paréntesis y el valor por omisión se muestra en negrita cursiva.

Categorías de opciones

Opciones de compilador

Descripción Valores
Generar atributo de depuración de variable local (COMPILER_LOCAL_VARIABLE_ATTR)
Si se genera, este atributo permite visualizar los nombres de variables locales en el depurador, solo en los lugares en los que las variables estén asignadas claramente (el archivo .class será más grande). GENERATE
DO_NOT_GENERATE
Generar atributo de depuración de número de línea (COMPILER_LINE_NUMBER_ATTR)
Si se genera, este atributo permite resaltar el código fuente en el depurador (el archivo .class será más grande). GENERATE
DO_NOT_GENERATE
Generar atributo de depuración del fuente (COMPILER_SOURCE_FILE_ATTR)
Si se genera, este atributo permite al depurador presentar el código fuente correspondiente. GENERATE
DO_NOT_GENERATE
Conservar variables locales no utilizadas (COMPILER_CODEGEN_UNUSED_LOCAL)
A menos que se ha haya solicitado conservar las variables locales no utilizadas, (es decir, que no se han leído nunca), el compilador las optimizará eliminándolas, alterando potencialmente la depuración. PRESERVE
OPTIMIZE_OUT
Definir plataforma Java destino (COMPILER_CODEGEN_TARGET_PLATFORM)
Por razones de compatibilidad binaria, los archivos .class pueden codificarse con determinadas versiones de VM y posteriores. Tenga en cuenta que el destino "1.4" le exige que conmute también la modalidad de conformidad a "1.4". VERSION_1_1
VERSION_1_2
VERSION_1_3
VERSION_1_4
Notificar código inalcanzable (COMPILER_PB_UNREACHABLE_CODE)
El código inalcanzable puede notificarse opcionalmente como un error, un aviso o simplemente pasarse por alto. La generación de bytecode lo optimizará eliminándolo siempre. ERROR
WARNING
IGNORE
Notificar importación no válida (COMPILER_PB_INVALID_IMPORT)
Una sentencia de importación que no puede resolverse puede notificarse opcionalmente como un error, un aviso o pasarse por alto. ERROR
WARNING
IGNORE
Notificar intento de alterar temporalmente método por omisión de paquete (COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD)
Un método de paquete por omisión no es visible en otro paquete y, por lo tanto, no puede alterarse temporalmente. Si se habilita esta opción, el compilador indicará este tipo de escenario como error o aviso. ERROR
WARNING
IGNORE
Notificar método con nombre de constructor (COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME)
Dar a un método el nombre de un constructor se considera generalmente como programación de estilo pobre. Si se habilita esta opción, el compilador indicará este tipo de escenario como error o aviso. ERROR
WARNING
IGNORE
Notificar obsolescencia (COMPILER_PB_DEPRECATION)
Si se habilita esta opción, el compilador indicará la utilización de una API obsoleta como error o aviso. ERROR
WARNING
IGNORE
Notificar obsolescencia dentro del código obsoleto (COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE)
Si se habilita esta opción, el compilador indicará la utilización de una API obsoleta como error o aviso. ENABLED
DISABLED
Notificar bloque catch oculto (COMPILER_PB_HIDDEN_CATCH_BLOCK)
Localmente con respecto a una sentencia try, algunos bloques catch pueden ocultar otros; por ejemplo:
try {
      throw new java.io.CharConversionException();
   } catch (java.io.CharConversionException e) {
   } catch (java.io.IOException e) {}.
Si se habilita esta opción, el compilador emitirá un error o un aviso para los bloques catch ocultos correspondientes a excepciones comprobadas.
ERROR
WARNING
IGNORE
Notificar variable local no utilizada (COMPILER_PB_UNUSED_LOCAL)
Si se habilita esta opción, el compilador emitirá un error o un aviso para las variables locales no utilizadas (es decir, variables en las que no se ha leído nunca). ERROR
WARNING
IGNORE
Notificar parámetro no utilizado (COMPILER_PB_UNUSED_PARAMETER)
Si se habilita esta opción, el compilador emitirá un error o un aviso para los parámetros de método no utilizados (es decir, parámetros en los que no se ha leído nunca). ERROR
WARNING
IGNORE
Notificar parámetro no utilizado si se implementa método abstracto (COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT)
Si se habilita esta opción, el compilador señalará los parámetros no utilizados en las implementaciones de los métodos abstractos. ENABLED
DISABLED
Notificar parámetro no utilizado si se altera temporalmente un método concreto (COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE)
Si se habilita esta opción, el compilador señalará los parámetros no utilizados en los métodos que alteran temporalmente métodos concretos. ENABLED
DISABLED
Notificar importación no utilizada (COMPILER_PB_UNUSED_IMPORT)
Si se habilita esta opción, el compilador emitirá un error o un aviso para las referencias a importaciones no utilizadas. ERROR
WARNING
IGNORE
Notificar miembros privados no utilizados (COMPILER_PB_UNUSED_PRIVATE_MEMBER)
Si se habilita esta opción, el compilador emitirá un error o un aviso siempre que se declare un método o un campo privado que no se utilice nunca dentro de la misma unidad. ERROR
WARNING
IGNORE
Notificar emulación de acceso sintética (COMPILER_PB_SYNTHETIC_ACCESS_EMULATION)
Si se habilita esta opción, el compilador emitirá un error o un aviso siempre que emule el acceso a un miembro no accesible de un tipo delimitador. Tales accesos pueden tener implicaciones en el rendimiento. ERROR
WARNING
IGNORE
Notificar literal de tipo serie no externalizado (COMPILER_PB_NON_NLS_STRING_LITERAL)
Si se habilita esta opción, el compilador emitirá un error o un aviso para los literales de tipo serie no externalizados (es decir, no señalados con el código //$NON-NLS-<n>$). ERROR
WARNING
IGNORE
Notificar utilización de identificador 'assert' (COMPILER_PB_ASSERT_IDENTIFIER)
Si está habilitada, el compilador emitirá un error o un aviso siempre que se utilice 'assert' como identificador (palabra clave reservada en 1.4). ERROR
WARNING
IGNORE
Notificar referencia no estática a un miembro estático (COMPILER_PB_STATIC_ACCESS_RECEIVER)
Si se habilita esta opción, el compilador emitirá un error o un aviso siempre que se acceda a un campo o a un método estático con un receptor de expresión. ERROR
WARNING
IGNORE
Notificar asignación sin efecto (COMPILER_PB_NO_EFFECT_ASSIGNMENT)
Si se habilita esta opción, el compilador emitirá un error o un aviso siempre que haya una asignación sin efecto (por ejemplo, 'x = x'). ERROR
WARNING
IGNORE
Notificar método de interfaz no compatible con métodos no heredados (COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD)
Si se habilita esta opción, el compilador emitirá un error o un aviso siempre que una interfaz defina un método incompatible con el de un objeto no heredado. ERROR
WARNING
IGNORE
Notificar utilización de expresiones char[] en concatenaciones de tipo serie (COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION)
Si se habilita esta opción, el compilador emitirá un error o un aviso siempre que se utilice una expresión de tipo char[] en concatenaciones de tipo serie (por ejemplo, "hello" + new char[]{'w','o','r','l','d'}). ERROR
WARNING
IGNORE
Establecer modalidad de compatibilidad del fuente (COMPILER_SOURCE)
Especifique si el fuente es compatible con 1.3 ó 1.4. A partir de 1.4, 'assert' es una palabra clave reservada para el soporte de aserción. Tenga en cuenta también que, al conmutar a la modalidad 1.4, el nivel de VM destino debe establecerse en "1.4" y la modalidad de conformidad debe ser "1.4". VERSION_1_3
VERSION_1_4
Establecer nivel de conformidad (COMPILER_COMPLIANCE)
Seleccione el nivel de conformidad del compilador. En la modalidad "1.3", los valores del origen y el destino no deben ser superiores al nivel "1.3". VERSION_1_3
VERSION_1_4
Número máximo de problemas notificados por unidad de compilación (COMPILER_PB_MAX_PER_UNIT)
Especifique el número máximo de problemas notificados en cada unidad de compilación (si el máximo es cero, se notifican todos los problemas). Un entero positivo.
El valor por omisión es 100
Definir los códigos de tarea automáticos (COMPILER_TASK_TAGS)
Cuando el código no está vacío, el compilador emitirá un marcador de tarea siempre que encuentre uno de los correspondientes códigos dentro de un comentario en el código fuente Java. Los mensajes de tarea generados incluirán el código y se extenderán hasta el separador de línea siguiente o la finalización de comentario, y se podarán.  {<código>[,<código>]*}.
El valor por omisión es ""
Definir las prioridades de tarea automáticas (COMPILER_TASK_PRIORITIES)
En paralelo con los códigos de tarea automáticos, esta lista define las prioridades (alta, normal o baja) de los marcadores de tarea emitidos por el compilador. Si se especifica el valor por omisión, la prioridad de cada marcador de tarea es "NORMAL".  {<prioridad>[,<prioridad>]*}.
El valor por omisión es ""

Opciones de constructor

Descripción Valores
Especificar filtros para control de copia de recursos (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER)
Especifique filtros para controlar el proceso de copia de recursos. (<nombre> es un patrón de nombre de archivo (solo se permiten los comodines *) o el nombre de una carpeta que termine en '/'). {<nombre>[,<nombre>]*}.
El valor por omisión es ""
Cancelar si la vía de acceso de clases no es válida (CORE_JAVA_BUILD_INVALID_CLASSPATH)
Se indica al constructor que cancele si la vía de acceso de clases no es válida. ABORT
IGNORE
Hacer limpieza de carpeta(s) de salida (CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER)
Indica si se permite que JavaBuilder haga limpieza de las carpetas de salida al realizar operaciones de construcción completas. CLEAN
IGNORE

Opciones de JavaCore

Descripción Valores
Calcular orden de construcción de proyecto (CORE_JAVA_BUILD_ORDER)
Indica si JavaCore debe forzar que el orden de construcción del proyecto se base en la cadena de prerrequisitos de la vía de acceso de clases. Si se solicita calcular, esta opción adopta el orden por omisión de la plataforma (basado en las referencias del proyecto). COMPUTE
IGNORE
Especificar formato de codificación de fuente por omisión (CORE_ENCODING)
Obtener el formato de codificación de los recursos compilados. Este valor es solo de lectura y equivale a ResourcesPlugin.getEncoding(). Cualquiera de los nombres de codificación soportados.
El valor por omisión es el de la plataforma
Notificar vía de acceso de clases incompleta (CORE_INCOMPLETE_CLASSPATH)
Indica la gravedad del problema notificado cuando no existe una entrada en la vía de acceso de clases, o cuando la entrada no es legítima o visible (por ejemplo, cuando está cerrado un proyecto al que se hace referencia). ERROR
WARNING
Notificar ciclo de vía de acceso de clases (CORE_CIRCULAR_CLASSPATH)
Indica la gravedad del problema notificado cuando hay un proyecto implicado en un ciclo. ERROR
WARNING
Habilitar utilización de patrones de exclusión de vía de acceso de clases (CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS)
Si esta opción se establece en "DISABLED" (inhabilitada), no se puede asociar ninguna entrada de una vía de acceso de clases de proyecto a un patrón de exclusión. ENABLED
DISABLED
Habilitar utilización de múltiples ubicaciones de salida de vía de acceso de clases (CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS)
Si esta opción se establece en "DISABLED" (inhabilitada), no se puede asociar ninguna entrada de una vía de acceso de clases de proyecto a una ubicación de salida específica, impidiendo así la utilización de múltiples ubicaciones de salida. ENABLED
DISABLED

Opciones de formateador

Descripción Valores
Insertar línea nueva antes de llave de apertura (FORMATTER_NEWLINE_OPENING_BRACE)
Si se elige INSERT (Insertar), se inserta una línea nueva antes de una llave de apertura; en caso contrario, no se inserta nada. INSERT
DO_NOT_INSERT
Insertar línea nueva dentro de sentencia de control (FORMATTER_NEWLINE_CONTROL)
Si se elige INSERT (Insertar), se inserta una línea nueva entre } y else, catch, finally. INSERT
DO_NOT_INSERT
Borrar líneas en blanco (FORMATTER_CLEAR_BLANK_LINES)
Si se elige CLEAR ALL (Borrar todo), se eliminan todas las líneas en blanco. Si se elige PRESERVE ONE (Conservar una), se eliminan todas las líneas menos una. CLEAR_ALL
PRESERVE_ONE
Insertar línea nueva entre Else/If (FORMATTER_NEWLINE_ELSE_IF)
Si se elige INSERT (Insertar), se inserta una línea en blanco entre una sentencia else y una sentencia if cuando estas dos sentencias son contiguas. Si se elige no insertar (DO_NOT_INSERT), else-if se mantendrán en la misma línea si es posible. INSERT
DO_NOT_INSERT
Insertar línea nueva en bloque vacío (FORMATTER_NEWLINE_EMPTY_BLOCK)
Si se elige INSERT (Insertar), se insertará una interrupción de línea entre dos llaves { y } contiguas, si no hay ninguna palabra clave a continuación de la llave }. INSERT
DO_NOT_INSERT
Dividir líneas que sobrepasan la longitud (FORMATTER_LINE_SPLIT)
Permitir la división de líneas largas (que superen la longitud configurable). Si la longitud es 0, se inhabilitará la división de línea. Un entero positivo.
El valor por omisión es 80
Compactar asignación (FORMATTER_COMPACT_ASSIGNMENT)
Las asignaciones pueden formatearse asimétricamente; por ejemplo, 'int x= 2;'; en el caso de Normal, se inserta un espacio antes del operador de asignación. COMPACT
NORMAL
Definir carácter de sangrado (FORMATTER_TAB_CHAR)
Puede optar por sangrar con caracteres de tabulación o con espacios. TAB
SPACE
Definir longitud de espacio de sangrado (FORMATTER_TAB_SIZE)
Si utiliza espacios, establezca la cantidad de caracteres de espacio que deben utilizarse para cada marca de sangrado. Un entero positivo.
El valor por omisión es 4
Insertar espacio en expresión de conversión temporal (FORMATTER_SPACE_CASTEXPRESSION)
Si el valor es INSERT (insertar), se añade un espacio entre el tipo y la expresión de una conversión temporal. INSERT
DO_NOT_INSERT

Opciones de asistencia de código

Descripción Valores
Activar conclusión sensible a visibilidad (CODEASSIST_VISIBILITY_CHECK)
Si está activa, la conclusión no muestra lo que no se puede ver (por ejemplo, no podrá ver los métodos privados de una superclase). ENABLED
DISABLED
Calificación automática de miembros implícitos (CODEASSIST_IMPLICIT_QUALIFICATION)
Si está activa, la conclusión queda automáticamente calificada en las expresiones de mensajes y las referencias a campo implícitas. ENABLED
DISABLED
Definir los prefijos del nombre de campo (CODEASSIST_FIELD_PREFIXES)
Cuando los prefijos no están vacíos, la conclusión del nombre del campo empezará por uno de los prefijos propuestos. {<prefijo>[,<prefijo>]*}.
El valor por omisión es ""
Definir los prefijos del nombre de campo estático (CODEASSIST_STATIC_FIELD_PREFIXES)
Cuando los prefijos no están vacíos, la conclusión del nombre del campo estático empezará por uno de los prefijos propuestos. {<prefijo>[,<prefijo>]*}.
El valor por omisión es ""
Definir los prefijos del nombre de variable local (CODEASSIST_LOCAL_PREFIXES)
Cuando los prefijos no están vacíos, la conclusión del nombre de la variable local empezará por uno de los prefijos propuestos. {<prefijo>[,<prefijo>]*}.
El valor por omisión es ""
Definir los prefijos del nombre de argumento (CODEASSIST_ARGUMENT_PREFIXES)
Cuando los prefijos no están vacíos, la conclusión del nombre del argumento empezará por uno de los prefijos propuestos. {<prefijo>[,<prefijo>]*}.
El valor por omisión es ""
Definir los sufijos del nombre de campo (CODEASSIST_FIELD_SUFFIXES)
Cuando los sufijos no están vacíos, la conclusión del nombre del campo acabará en uno de los sufijos propuestos. {<sufijo>[,<sufijo>]*}.
El valor por omisión es ""
Definir los sufijos del nombre de campo estático (CODEASSIST_STATIC_FIELD_SUFFIXES)
Cuando los sufijos no están vacíos, la conclusión del nombre del campo estático acabará en uno de los sufijos propuestos. {<sufijo>[,<sufijo>]*}.
El valor por omisión es ""
Definir los sufijos del nombre de variable local (CODEASSIST_LOCAL_SUFFIXES)
Cuando los sufijos no están vacíos, la conclusión del nombre de la variable local acabará en uno de los sufijos propuestos. {<sufijo>[,<sufijo>]*}.
El valor por omisión es ""
Definir los sufijos del nombre de argumento (CODEASSIST_ARGUMENT_SUFFIXES)
Cuando los sufijos no están vacíos, la conclusión del nombre del argumento acabará en uno de los sufijos propuestos. {<sufijo>[,<sufijo>]*}.
El valor por omisión es ""

 Copyright IBM Corporation y otras empresas 2000, 2003. Reservados todos los derechos.