Perguntas frequentes sobre JDT

Posso utilizar um compilador Java diferente do incorporado (por exemplo, javac) com a área de trabalho?

Não. As JDT facultam uma quantidade de funções sofisticadas incluindo a recompilação incremental totalmente automática, avaliação do fragmento do código, assistência de código, hierarquias de tipo e substituição de código em actividade. Estas funções necessitam de suporte especial localizado no compilador Java da área de trabalho (uma parte integral do construtor do projecto incremental das JDT), mas que não está disponível em compiladores Java padrão.

De onde vêm os pacotes Java?

Um projecto contém apenas ficheiros e pastas. A noção de um pacote Java é introduzida pelo caminho de classes de um projecto Java (na IU, o Explorador de Pacotes apresenta os pacotes como definidos pelo caminho de classes). Sugestão: Se a estrutura de pacotes não for o esperado, verifique o caminho de classes. A infra-estrutura de pesquisa Java apenas localiza declarações e referências de elementos Java no caminho de classes.

Quando utilizo um ficheiro de bibliotecas JAR interno vs. externo?

Um recurso interno reside nalgum projecto na área de trabalho e, desta forma, é gerido pela área de trabalho; como outros recursos, estes recursos podem ser geridos pela versão por parte da área de trabalho. Um recurso externo não faz parte da área de trabalho e pode ser utilizado apenas para referência. Por exemplo, um JRE é frequentemente externo e muito grande, não havendo necessidade de o associar a um sistema de VCM.

Quando deverei utilizar pastas de origem num projecto Java?

Cada projecto Java localiza os respectivos ficheiros origem Java através de uma ou mais entradas de tipo de origem no caminho de classes do projecto. Utilize pastas de origem para organizar os pacotes de um grande projecto em agrupamentos úteis ou para manter o código fonte separado de outros ficheiros no mesmo projecto. Além disso, utilize pastas de origem se tiver ficheiros (documentação, por exemplo) que não precisam de estar no caminho de construção.

O que são anexos de origem, Como posso definir um?

As bibliotecas são armazenadas como ficheiros JAR que contêm ficheiros de classes binários (e talvez outros recursos). Estes ficheiros de classes binários facultam informações de assinatura para pacotes, classes, métodos e campos. Esta informação é suficiente para compilar ou executar, mas contém muito menos informação que o código fonte original. Para facilitar a procura e a depuração de bibliotecas binárias, existe um mecanismo para associar um ficheiro JAR (ou ZIP) de origem correspondente a um ficheiro JAR binário.

Porque é que todos os meus recursos estão duplicados na pasta de saída (bin, por exemplo)?

Se o projecto Java estiver a utilizar pastas de origem, no decorrer da compilação dos ficheiros origem no projecto, o compilador Java copia recursos diferentes Java para a pasta de saída também, de forma a estarem disponíveis no caminho de classes do programa em execução. Para evitar que certos recursos sejam copiados para a localização de saída, pode definir um filtro do recurso nas preferências do compilador Java: Janela > Preferências > Java > Compilador > Construir

Como posso evitar que os ficheiros da documentação sejam copiados para a pasta de saída do projecto?

Utilize pastas de origem e coloque os recursos que não quiser que sejam copiados para a pasta de saída numa pasta à parte que não esteja incluída no caminho de classes. Também pode definir um filtro do recurso nas preferências do compilador Java: Janela > Preferências > Java > Compilador > Construir, por exemplo, para *.doc.

Como posso criar um pacote predefinido?

Não tem de o fazer. Os ficheiros na pasta de raiz de uma pasta de origem ou projecto considera-se que estão no pacote predefinido. Na verdade, cada pasta de origem tem a capacidade de ter um fragmento do pacote predefinido.

O que é a refactorização?

A refactorização significa transformações do programa de conservação do comportamento. As JDT suportam uma quantidade de transformações descritas no livro de Martin Fowler Refactoring: Improving the Design of Existing Code, Addison Wesley 1999.

Quando utilizo seleccionar código/resolver código (F3)?

Para descobrir o elemento Java que corresponde a um intervalo de origem com a ajuda do compilador.

A informação do programa Java (hierarquia de tipo, declarações, referências, por exemplo) é produzida pelo construtor Java? Ainda é actualizada quando a construção automática está desligada?

A informação do programa Java é independente do construtor Java. É automaticamente actualizada ao executar alterações de recursos ou operações Java. Em particular, toda a funcionalidade facultada pelas ferramentas Java (por exemplo, hierarquias de tipo, assistência de códigos, pesquisa) vai continuar a ser executada de forma exacta quando a construção automática estiver desactivada; por exemplo, ao efectuar uma grande refactorização que exige que desactive os construtores, ainda pode utilizar a assistência de código, que vai reflectir as alterações mais recentes (ainda não construídas). Para além do lançamento (ou seja, execução e depuração) de programas, a única funcionalidade que necessita do construtor Java é a avaliação dos fragmentos de código.

Depois de voltar a abrir uma área de trabalho, a primeira construção que ocorre após a edição de um ficheiro origem Java parece demorar bastante tempo. Porque será?

O construtor do projecto incremental Java guarda o estado interno num ficheiro quando a área de trabalho é fechada. Na primeira construção após a reabertura do projecto, o construtor do projecto incremental vai restaurar o respectivo estado interno. Quando este ficheiro é grande, o utilizador vai detectar uma demora na construção invulgarmente longa.

Não consigo ver uma hierarquia de tipo para a minha classe. Que atitude tomar?

Verifique se tem o caminho de classes de construção correctamente configurado. A configuração correcta do caminho de classes de construção é uma tarefa importante ao efectuar uma programação Java. Sem o caminho de construção correcto, não poderá compilar o seu código. Além disso, não poderá pesquisar ou ver nas hierarquias de tipo os elementos Java.

Como posso desactivar a "compilação automática" e realizá-la manualmente quando quiser?

Desmarcar a caixa de verificação Construir automaticamente na página de preferências Abre a página de preferências Espaço de Trabalho Geral > Espaço de trabalho. Quando quiser construir, prima Ctrl+B ou seleccione Projecto > Construir Tudo na barra de menus.

Sugestão: sempre que o utilizador desliga "auto compile" e constrói manualmente, pode querer também seleccionar a caixa de verificação Guardar automaticamente antes de construir Abre a página de preferências Espaço de Trabalho Geral > Espaço de trabalho.

Quando selecciono um método ou campo na vista Contorno, apenas a origem desse elemento é apresentada no editor. O que preciso de fazer para ver a origem de todo o ficheiro?

Existe um botão da barra de ferramentas Mostrar Origem Apenas do Elemento Seleccionado - basta desmarcá-lo.

Posso imbricar pastas de origem?

Sim, pode utilizar filtros de exclusão para criar pastas de origem imbricadas.

Posso ter pastas de saída separadas para cada pasta de origem?

Sim, seleccione a caixa de verificação Permitir pastas de saída para pastas de origem na página de propriedades Caminho de Construção Java> Origem do projecto Java.

Posso ter uma pasta de saída ou de origem que esteja localizada fora do espaço de trabalho?

Sim, pode criar uma pasta com ligações que indiquem a localização pretendida e utilizar essa pasta como a pasta de origem ou de saída no projecto Java.

Conceitos relacionados

Ferramentas de programação Java (JDT)

Referência relacionada

Página Caminho de Construção Java
Glossário de JDT