As opções do Núcleo do JDT controlam o comportamento de recursos do núcleo como o compilador Java, formatador de código, assistência ao código e outros comportamentos do núcleo. As APIs para acessar as opções estão definidas no JavaCore. As opções podem ser acessadas como um grupo da seguinte maneira:
As opções também pode ser acessadas individualmente através de um nome de cadeia.
As opções são armazenadas como uma tabela hash de todas as opções configuráveis conhecidas com seus valores. As constantes auxiliares foram definidas em JavaCore para cada ID de opção e seus valores de constante possíveis.
O fragmento de código a seguir restaura o valor de todas as opções do núcleo,
restabelecendo seus padrões, exceto por um (COMPILER_PB_DEPRECATION
),
o qual é definido especificamente.
// Obter as opções atuais
Opções da tabela de hashing = JavaCore.getDefaultOptions();
// Alterar o valor de uma opção
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Definir as novas opções
JavaCore.setOptions(options);
O fragmento de código a seguir mantém o valor das opções atuais e modifica apenas
um (COMPILER_PB_DEPRECATION
):
// Obter as opções atuais
Opções da tabela de hashing = JavaCore.getOptions();
// Alterar o valor de uma opção
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Definir as novas opções
JavaCore.setOptions(options);
Os valores das opções podem ser substituídos por projeto utilizando o protocolo emIJavaProject.
O fragmento de código a seguir recupera o valor de uma opção (COMPILER_PB_DEPRECATION
)
para um projeto específico de duas formas diferentes. O parâmetro booleano
controla se apenas as opções específicas do projeto devem ser retornadas em uma
consulta ou se os valores de opções do projeto devem ser mesclados com os valores no
JavaCore.
// Obter o projeto IJavaProject project = ...; // Observar se o valor de uma opção foi definido neste projeto String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false); if (value == null) { // nenhuma opção específica foi definida no projeto ... } // Obter o valor de uma opção deste projeto. Utilizar o valor de // valor JavaCore, se nenhum estiver especificado para o projeto String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);
A tabela a seguir descreve as opções disponíveis do Núcleo do JDT. O id da opção é mostrado entre parêntesis e o valor padrão é mostrado em itálico e negrito.
Descrição | Valores |
---|---|
Gerando Atributo de Depuração da Variável Local (COMPILER_LOCAL_VARIABLE_ATTR) | |
Quando gerado, esse atributo ativará os nomes das variáveis locais para serem exibidos no depurador, apenas em locais em que as variáveis são definitivamente atribuídas (o arquivo .class será então maior) | GERAR |
NÃO_GERAR | |
Gerando Atributo de Depuração do Número de Linha (COMPILER_LINE_NUMBER_ATTR) | |
Quando gerado, esse atributo ativará o destaque de código fonte no depurador (o arquivo .class será então maior). | GERAR |
NÃO_GERAR | |
Gerando Atributo de Depuração da Origem (COMPILER_SOURCE_FILE_ATTR) | |
Quando gerado, esse atributo ativará o depurador para apresentar o código fonte correspondente. | GERAR |
NÃO_GERAR | |
Preservando Variáveis Locais Não Utilizadas (COMPILER_CODEGEN_UNUSED_LOCAL) | |
A não ser que solicitado para preservar as variáveis locais não utilizadas (isto é, nunca lidas), o compilador as otimizará, alterando a depuração. | PRESERVAR |
OTIMIZAR | |
Definindo a Plataforma Java de Destino (COMPILER_CODEGEN_TARGET_PLATFORM) | |
Por motivo de compatibilidade binária, os arquivos .class podem ser marcados com certas versões da VM e posteriores. Observe que o destino "1.4" requer que o modo de compatibilidade também seja alternado para "1.4". | VERSÃO_1_1 |
VERSÃO_1_2 | |
VERSÃO_1_3 | |
VERSÃO_1_4 | |
Relatando Código Inatingível (COMPILER_PB_UNREACHABLE_CODE) | |
O código inatingível pode, opcionalmente, ser relatado como erro, aviso ou simplesmente ser ignorado. A geração de código de bytes sempre o otimizará. | ERRO |
AVISO | |
IGNORAR | |
Relatando Importação Inválida (COMPILER_PB_INVALID_IMPORT) | |
Uma instrução de importação que não pode ser resolvida pode, opcionalmente, ser relatada como erro, aviso ou ser ignorada. | ERRO |
AVISO | |
IGNORAR | |
Relatando Tentativa de Substituir Método Padrão do Pacote (COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD) | |
Um método padrão de pacote não é visível em um pacote diferente e, portanto, não pode ser substituído. Ao ativar esta opção, o compilador sinalizará esse cenário como erro ou aviso. | ERRO |
AVISO | |
IGNORAR | |
Relatando Método com o Nome do Construtor (COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME) | |
A nomeação de um método com um nome de construtor geralmente é considerado programação de estilo inadequado. Ao ativar esta opção, o compilador sinalizará esse cenário como erro ou aviso. | ERRO |
AVISO | |
IGNORAR | |
Relatando Desaprovação (COMPILER_PB_DEPRECATION) | |
Quando ativado, o compilador sinalizará o uso da API reprovada como erro ou aviso. | ERRO |
AVISO | |
IGNORAR | |
Relatando Reprovação Dentro do Código Reprovado (COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE) | |
Quando ativado, o compilador sinalizará o uso da API reprovada como erro ou aviso. | ATIVADO |
DESATIVADO | |
Relatando Bloco de Captura Oculto (COMPILER_PB_HIDDEN_CATCH_BLOCK) | |
Localmente para uma instrução try, alguns blocos de captura podem ocultar outros, por ex.,
try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {}.Ao ativar esta opção, o compilador emitirá um erro ou um aviso para blocos de captura ocultos correspondentes a exceções verificadas |
ERRO |
AVISO | |
IGNORAR | |
Relatando Local Não Utilizado (COMPILER_PB_UNUSED_LOCAL) | |
Quando ativado, o compilador emitirá um erro ou um aviso para variáveis locais não utilizadas (isto é, variáveis nunca lidas) | ERRO |
AVISO | |
IGNORAR | |
Relatando Parâmetro Não Utilizado (COMPILER_PB_UNUSED_PARAMETER) | |
Quando ativado, o compilador emitirá um erro ou um aviso para parâmetros de método não utilizados (isto é, parâmetros nunca lidos) | ERRO |
AVISO | |
IGNORAR | |
Relatando Parâmetro Não Utilizado ao Implementar Método Abstrato (COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT) | |
Quando ativado, o compilador sinalizará parâmetros não utilizados em implementações de método abstrato. | ATIVADO |
DESATIVADO | |
Relatando Parâmetro Não Utilizado ao Substituir Método Concreto (COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE) | |
Quando ativado, o compilador sinalizará parâmetros não utilizados em métodos que substituem métodos concretos. | ATIVADO |
DESATIVADO | |
Relatando Importação Não Utilizada (COMPILER_PB_UNUSED_IMPORT) | |
Quando ativado, o compilador emitirá um erro ou um aviso para referência de importação não utilizada | ERRO |
AVISO | |
IGNORAR | |
Relatando Membros Privados Não Utilizados(COMPILER_PB_UNUSED_PRIVATE_MEMBER) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que um método ou campo privado for declarado mas nunca utilizado dentro da mesma unidade. | ERRO |
AVISO | |
IGNORAR | |
Relatando Emulação de Acesso Sintético (COMPILER_PB_SYNTHETIC_ACCESS_EMULATION) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que emular o acesso a um membro não acessível de um tipo de inclusão. Esse acesso pode ter implicações no desempenho. | ERRO |
AVISO | |
IGNORAR | |
Relatando Literais de Cadeias Não Externalizadas (COMPILER_PB_NON_NLS_STRING_LITERAL) | |
Quando ativado, o compilador emitirá um erro ou um aviso para literais de cadeias não externalizadas (isto é, não marcadas com //$NON-NLS-<n>$) | ERRO |
AVISO | |
IGNORAR | |
Relatando o Uso do Identificador 'assert' (COMPILER_PB_ASSERT_IDENTIFIER) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que 'assert' for utilizado como identificador (palavra-chave reservada no 1.4) | ERRO |
AVISO | |
IGNORAR | |
Relatando Referência Não Estática a um Membro Estático (COMPILER_PB_STATIC_ACCESS_RECEIVER) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que um campo ou método estático for acessado com um receptor de expressão. | ERRO |
AVISO | |
IGNORAR | |
Relatando Atribuição Sem Efeito (COMPILER_PB_NO_EFFECT_ASSIGNMENT) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que uma atribuição não tiver nenhum efeito (ex. 'x = x'). | ERRO |
AVISO | |
IGNORAR | |
Relatando Método de Interface Incompatível com Métodos não-Herdados (COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que uma interface definir um método incompatível com um de Objeto não-herdado. | ERRO |
AVISO | |
IGNORAR | |
Relatando Uso de Expressões char[] em Concatenações de Cadeia (COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION) | |
Quando ativado, o compilador emitirá um erro ou um aviso sempre que uma expressão char[] for utilizada em concatenações de Cadeia (ex. "hello" + new char[]{'w','o','r','l','d'}), | ERRO |
AVISO | |
IGNORAR | |
Definindo o Modo de Compatibilidade de Origem (COMPILER_SOURCE) | |
Especifica se a origem é compatível com 1.3 ou 1.4. Da 1.4 para frente, 'assert' é uma palavra-chave reservada para suporte de asserção. Observe também, que ao alternar para o modo 1.4, o nível da VM de destino deve ser definido para "1.4" e o modo de compatibilidade deve ser "1.4". | VERSÃO_1_3 |
VERSÃO_1_4 | |
Definindo o Nível de Compatibilidade (COMPILER_COMPLIANCE) | |
Selecione o nível de compatibilidade do compilador. No modo "1.3", as definições de origem e de destino não devem ultrapassar o nível "1.3". | VERSÃO_1_3 |
VERSÃO_1_4 | |
Número máximo de problemas relatados por unidade de compilação (COMPILER_PB_MAX_PER_UNIT) | |
Especifique o número máximo de problemas relatados em cada unidade de compilação (se o máximo for zero, todos os problemas serão relatados). | um inteiro positivo. O valor padrão é 100 |
Definir as Marcações de Tarefas Automáticas (COMPILER_TASK_TAGS) | |
Quando a marcação não está vazia, o compilador emitirá um marcador de tarefa sempre que encontrar uma das marcações correspondentes dentro de qualquer comentário no código fonte Java. As mensagens de tarefas geradas incluirão a marcação e estendendo-se até o próximo separador de linhas ou término de comentário e serão cortadas. | {<tag>[,<tag>]*}. O valor padrão é "" |
Definir as Prioridades de Tarefas Automáticas (COMPILER_TASK_PRIORITIES) | |
Em paralelo às Marcações de Tarefas Automáticas, esta lista define as prioridades (alta, normal ou baixa) dos marcadores de tarefas emitidas pelo compilador. Se o padrão estiver especificado, a prioridade de cada marcador de tarefa será "NORMAL". | {<priority>[,<priority>]*}. O valor padrão é "" |
Descrição | Valores |
---|---|
Especificando Filtros para Controle de Cópia de Recurso (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER) | |
Especifique filtros para controlar o processo de cópia do recurso. (<name> é um padrão de nome de arquivo (são permitidos apenas os caracteres curinga *) ou o nome de uma pasta que termina com '/') | {<name>[,<name>]*}. O valor padrão é "" |
Abortar se o Classpath for Inválido (CORE_JAVA_BUILD_INVALID_CLASSPATH) | |
Instrua o construtor para abortar se o classpath for inválido | ABORTAR |
IGNORAR | |
Limpando Pasta(s) de Saída (CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER) | |
Indique se o JavaBuilder pode limpar as pastas de saída ao executar operações de construção completas. | LIMPAR |
IGNORAR |
Descrição | Valores |
---|---|
Calculando A Ordem de Construção do Projeto (CORE_JAVA_BUILD_ORDER) | |
Indique se o JavaCore deve forçar para que a ordem de construção do projeto seja baseada na cadeia de pré-requisitos do classpath. Ao solicitar o cálculo, é assumida a ordem padrão da plataforma (com base nas referências do projeto). | CALCULAR |
IGNORAR | |
Especificar o Formato de Codificação de Origem Padrão (CORE_ENCODING) | |
Obtenha o formato de codificação das origens compiladas. Esta definição é somente leitura, equivalente a ResourcesPlugin.getEncoding(). | qualquer um dos nomes de codificação suportados. O valor padrão é o padrão da plataforma |
Relatando Classpath Incompleto (CORE_INCOMPLETE_CLASSPATH) | |
Indicar a gravidade do problema relatado quando uma entrada no classpath não existe, não é legítima ou não é visível (ex. um projeto referenciado está fechado). | ERRO |
AVISO | |
Relatando o Ciclo do Classpath (CORE_CIRCULAR_CLASSPATH) | |
Indicar a gravidade do problema relatado quando um projeto está envolvido em um ciclo. | ERRO |
AVISO | |
Habilitando o Uso de Padrões de Exclusão do Classpath (CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS) | |
Quando definido como "desativado", nenhuma entrada no classpath de um projeto pode estar associada a um padrão de exclusão. | ATIVADO |
DESATIVADO | |
Habilitando o Uso de Múltiplas Localizações de Saída do Classpath (CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS) | |
Quando definido como "desativado", nenhuma entrada no classpath de um projeto pode estar associada a uma localização de saída específica, impedindo assim o uso de múltiplas localizações de saída | ATIVADO |
DESATIVADO |
Descrição | Valores |
---|---|
Inserindo Nova Linha Antes da Chave de Abertura (FORMATTER_NEWLINE_OPENING_BRACE) | |
Ao Inserir, uma nova linha é inserida antes de uma chave de abertura, caso contrário, nada é inserido | INSERIR |
NÃO_INSERIR | |
Inserindo Nova Linha Dentro da Instrução de Controle (FORMATTER_NEWLINE_CONTROL) | |
Ao Inserir, uma nova linha é inserida entre a } e else, catch, finally a seguir | INSERIR |
NÃO_INSERIR | |
Limpando Linhas em Branco (FORMATTER_CLEAR_BLANK_LINES) | |
Ao Limpar tudo, todas as linhas em branco são removidas. Ao Preservar uma, apenas uma é mantida e as outras são removidas. | LIMPAR_TUDO |
PRESERVAR_UMA | |
Inserindo Nova Linha Entre Else/If (FORMATTER_NEWLINE_ELSE_IF) | |
Ao Inserir, uma linha em branco é inserida entre um else e um if, quando contíguos. Ao escolher para não inserir, else-if serão mantidos na mesma linha, quando possível. | INSERIR |
NÃO_INSERIR | |
Inserindo Nova Linha em Bloco Vazio (FORMATTER_NEWLINE_EMPTY_BLOCK) | |
Ao inserir, uma quebra de linha é inserida entre { e } contíguas, se } não vier seguida de palavra-chave. | INSERIR |
NÃO_INSERIR | |
Dividindo Linhas com Comprimento Excedente (FORMATTER_LINE_SPLIT) | |
Ativar divisão de linhas grandes (aquelas que excedem o comprimento configurável). O comprimento 0 desativará a divisão de linhas | um inteiro positivo. O valor padrão é 80 |
Compactando a Atribuição (FORMATTER_COMPACT_ASSIGNMENT) | |
As atribuições podem ser formatadas assimetricamente, por ex., 'int x= 2;', quando Normal, é inserido um espaço antes do operador de atribuição | COMPACTAR |
NORMAL | |
Definindo o Caractere de Alinhamento (FORMATTER_TAB_CHAR) | |
Escolha alinhar com caracteres tab ou espaços | TAB |
ESPAÇO | |
Definindo o Comprimento do Alinhamento de Espaços (FORMATTER_TAB_SIZE) | |
Ao utilizar espaços, defina a quantidade de caracteres de espaço a ser utilizada para cada marca de alinhamento. | um inteiro positivo. O valor padrão é 4 |
Inserindo espaço na expressão cast (FORMATTER_SPACE_CASTEXPRESSION) | |
Quando for Inserir, um espaço é adicionado entre o tipo e a expressão em uma expressão cast. | INSERIR |
NÃO_INSERIR |
Descrição | Valores |
---|---|
Ativar Conclusão Sensível à Visibilidade (CODEASSIST_VISIBILITY_CHECK) | |
Quando ativa, a conclusão não responde ao que não pode ser visto (por ex., você não pode ver métodos particulares de uma superclasse). | ATIVADO |
DESATIVADO | |
Qualificação Automática de Membros Implícitos (CODEASSIST_IMPLICIT_QUALIFICATION) | |
Quando ativa, a conclusão qualifica automaticamente a conclusão em referências de campo e expressões de mensagens implícitas. | ATIVADO |
DESATIVADO | |
Definir os Prefixos para Nome de Campo (CODEASSIST_FIELD_PREFIXES) | |
Quando os prefixos não estão vazios, a conclusão para o nome do campo começará com um dos prefixos sugeridos. | {<prefix>[,<prefix>]*}. O valor padrão é "" |
Definir os Prefixos para Nome de Campo Estático (CODEASSIST_STATIC_FIELD_PREFIXES) | |
Quando os prefixos não estão vazios, a conclusão para o nome do campo estático começará com um dos prefixos sugeridos. | {<prefix>[,<prefix>]*}. O valor padrão é "" |
Definir os Prefixos para Nome de Variável Local (CODEASSIST_LOCAL_PREFIXES) | |
Quando os prefixos não estão vazios, a conclusão para o nome da variável local começará com um dos prefixos sugeridos. | {<prefix>[,<prefix>]*}. O valor padrão é "" |
Definir os Prefixos para Nome de Argumento (CODEASSIST_ARGUMENT_PREFIXES) | |
Quando os prefixos não estão vazios, a conclusão para o nome do argumento começará com um dos prefixos sugeridos. | {<prefix>[,<prefix>]*}. O valor padrão é "" |
Definir os Sufixos para Nome de Campo (CODEASSIST_FIELD_SUFFIXES) | |
Quando os sufixos não estão vazios, a conclusão para o nome do campo terminará com um dos sufixos sugeridos. | {<suffix>[,<suffix>]*}. O valor padrão é "" |
Definir os Sufixos para Nome de Campo Estático (CODEASSIST_STATIC_FIELD_SUFFIXES) | |
Quando os sufixos não estão vazios, a conclusão para o nome do campo estático terminará com um dos sufixos sugeridos. | {<suffix>[,<suffix>]*}. O valor padrão é "" |
Definir os Sufixos para Nome de Variável Local (CODEASSIST_LOCAL_SUFFIXES) | |
Quando os sufixos não estão vazios, a conclusão para o nome da variável local terminará com um dos sufixos sugeridos. | {<suffix>[,<suffix>]*}. O valor padrão é "" |
Definir os Sufixos para Nome de Argumento (CODEASSIST_ARGUMENT_SUFFIXES) | |
Quando os sufixos não estão vazios, a conclusão para o nome do argumento terminará com um dos sufixos sugeridos. | {<suffix>[,<suffix>]*}. O valor padrão é "" |