A conclusão do código Eclipse / Java não está funcionando

595

Fiz o download, descompactei o zip e configurei o Eclipse 3.4.2 com alguns plugins (notáveis, EPIC, Clearcase, QuantumDB, MisterQ).

Agora, quando estou editando projetos Java, a conclusão do código não está funcionando. Se eu digitar String.e pressionar ctrl+, spaceum pop-up mostra "Nenhuma proposta padrão" e a barra de status na parte inferior mostra "Nenhuma conclusão disponível".

Alguma ideia?

Robert Brown
fonte
1
Para aqueles de vocês que estão tentando consertar isso no Ubuntu, [aqui está a resposta] [1]. [1]: askubuntu.com/questions/243639/...
sintagma

Respostas:

1246

Tente restaurar as opções padrão em ' Windows > Preferences > Java > Editor > Content Assist > Advanced'

Um exemplo do tipo de dados que você vê nessa tela de preferências, mas não necessariamente o que você possui atualmente.

configuração do assistente de conteúdo do eclipse

(De Vadim nesta postagem do blog "Duplicatas do assistente de conteúdo no Eclipse (Mylyn)" :
se houver entradas duplicadas do Mylyn, desmarque as entradas duplicadas que não contêm " (Mylyn)" em seus nomes)

A página de ajuda do Eclipse define a lista padrão para restaurar:

Selecione os tipos de proposta contidos na lista de assistência ao conteúdo 'padrão' :

  • Outras propostas Java,
  • Propostas de modelos SWT,
  • Propostas de modelos,
  • Propostas de tipo
VonC
fonte
3
não faço ideia de como isso foi alterado no meu ambiente - eu certamente não fiz isso, mas sua solução funciona! obrigado.
pstanton
71

Estou adicionando uma resposta aqui caso outra pessoa encontre isso no Google. Mesmos sintomas; problema diferente. Para mim, os caches de tipo ficaram corrompidos.

De http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • Sair do Eclipse
  • Vá para a área de trabalho / .metadata / .plugins / org.eclipse.jdt.core
  • Remova * .index e savedIndexNames.txt
  • Reinicie o Eclipse e procure Ctrl+ Tpelo tipo incorreto. Os índices serão reconstruídos.
hoipolloi
fonte
+1, isso funcionou para mim. Eu também sofria anteriormente com o Eclipse pensando que meu projeto estava na versão 1.5, apesar de todas as opções dizerem o contrário, portanto, ele deve ter sido corrompido durante esse problema.
Philip Guin
3
Espere, deixa pra lá. Depois de experimentar seu método, a CA funciona exatamente uma vez e depois explode novamente. Ugh. O problema persiste mesmo depois de recriar todo o espaço de trabalho. Nenhuma outra solução aqui parece funcionar ...
Philip Guin
2
+1. Nota: se você tentar o assistente de conteúdo em uma expressão lambda, pode não ser bem suportado pela sua versão do Eclipse.
Bludwarf #
Funcionou tão bem. Obrigado!
Modo
27

Caso alguém venha aqui e deseje ativar a função de preenchimento automático, vá para

Preferences -> Java -> Editor -> Content Assist.

Em seguida, na seção Ativação automática , preencha os gatilhos de ativação automática para Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

insira a descrição da imagem aqui

Hoa Vu
fonte
Isso pode tornar seu eclipse muito lento com grande base de código.
J-ho
19

Para aqueles que executam o Xfce + com o plug-in IBus ativado, pode haver conflito de atalhos do teclado.

Veja mais informações no meu blog: http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

ATUALIZAR :

como sugerido pelo comentário de @ nhahtdh, adicionando mais algumas informações para responder diretamente: o plugin IBus no Xfce usa por padrão Ctrl+ Spaceatalho para alternar o layout do teclado. Para alterar, vá para: Opções e altere para o que mais você preferir.

Peter Butkovic
fonte
3
Inclua aqui as partes essenciais do seu blog, caso ele se torne indisponível no futuro.
Nhahtdh 4/13
2
Mesmo problema em LXDE. Vá para Preferences-> Keyboard Inpute remova o Next input methodatalho.
Kshitiz Sharma
1
Os mesmos problemas aparecem no ambiente de trabalho Cinnamon.
Akkusativobjekt 18/11/2015
11

Verifique a lib do seu projeto. Pode ser que você tenha incluído dois desses arquivos jar na qual a mesma classe está disponível ou digamos que uma classe no código possa ser atualizada em dois arquivos jar. Nesse caso, o eclipse também para de ajudar o código, pois é totalmente confuso.

A melhor maneira de verificar isso é ir para o arquivo em que o assist não está funcionando e comentar todas as importações lá, do que adicionar importações uma a uma e verificar a cada importação se o assistido por código está funcionando ou não. .

Mona
fonte
9

Nada disso funcionou para mim.

Eu estava enfrentando esse problema em apenas uma aula em particular. O que finalmente funcionou para mim foi excluir a classe ofensiva e recriá-la. Problema resolvido ... mistério nem tanto!

Marc
fonte
5

Se você instalou a Barra de Ferramentas Google para IE, é possível que esteja enfrentando o mesmo problema. Porque, a barra de ferramentas captura o atalho ctrl +Space.

Shashi
fonte
5

Eu tive esse problema e, como @Marc, apenas em uma classe específica. Descobri que precisava designar o Open With = Java Editor. Como um novato no Eclipse, eu nem percebi que estava apenas usando um editor de texto simples.

No explorador de pacotes, clique com o botão direito do mouse no arquivo e escolha "Abrir com".

Elroy Flynn
fonte
4

Enfrentei esse problema e passei horas tentando descobrir o problema. Ao tentar seguir as etapas mencionadas nas diferentes respostas acima, a solução que encontrei está nas mesmas linhas sugeridas por Mona, mas um pouco diferente. Tentei adicionar como comentário a resposta de Mona, mas nenhuma opção estava disponível. O problema do meu eclipse foi que, de alguma forma, o caminho da classe foi corrompido e todos os jars e projetos dependentes estavam ausentes. depois de pegar o .classpath mais recente do repositório, funcionou bem.

Nirmal Mangal
fonte
4

Também enfrento esse problema, mas ele é resolvido de maneira diferente. As etapas que eu sigo podem ser úteis para outras pessoas.

  1. Clique com o botão direito do mouse no projeto (aquele em que você está trabalhando)
  2. Vá para Propriedades> Caminho de Construção Java> Biblioteca do Sistema JRE
  3. Clique em Editar ... à direita
  4. Escolha o JRE 7
asifaftab87
fonte
4

Depois de verificar a configuração e a conclusão ainda não funcionar:

  • verifique se você possui a estrutura de diretórios correta.

Você vê o ícone certo ao lado do arquivo ?:

insira a descrição da imagem aqui

Ele mostrará como o arquivo será tratado pelo Eclipse:

insira a descrição da imagem aqui

Estou postando esta resposta como tinha essa história com o artefato do Maven webapp. Por padrão, o Maven-WebApp não cria pasta para fontes e eu coloco meu Java em recursos, me perguntando por 5 minutos o que estava acontecendo ... :)

Witold Kaczurba
fonte
3

Verifique se você não filtrou muitas opções dentro da Janela> Preferências> Java> Aparência> Filtros de tipo

Os itens desta lista não serão exibidos rapidamente, serão preenchidos automaticamente ou aparecerão em outros locais, como a caixa de diálogo Tipo aberto.

Aaron
fonte
3

Outra solução que funcionou para mim é ir para Java -> Aparência -> Digitar filtros e desativar todosinsira a descrição da imagem aqui

user1889970
fonte
3

Talvez isso ajude outras pessoas que se deparam com o mesmo problema.

Minha configuração: projeto antigo do Gradle (versão Gradle 2.12) feito por outra pessoa, importado usando o Assistente de importação do Gradle para o STS (Eclipse Oxygen.2 (4.7.2)).

A conclusão do código também não funcionou (e ainda tenho Js ocos nos arquivos Java), mas pelo menos consegui que a conclusão do código funcionasse fazendo:

  • clique com o botão direito do mouse na pasta do projeto> Propriedades> Gradle> Definir configurações da área de trabalho> Java> Editor> Assistente de Conteúdo> Avançado
  • marque "Java Proposals na janela superior.
  • 2x Aplicar e Fechar
Togepi
fonte
2

No meu caso, o Intellisense só desapareceu em algumas classes em um projeto. Aconteceu que isso ocorreu devido à falta de uma biblioteca no caminho da compilação (embora funcionasse anteriormente).

Portanto, verifique definitivamente todos os erros ou problemas no Eclipse e tente descobrir se uma biblioteca pode estar faltando

arnehehe
fonte
2

Eu me deparei com isso e acabou sendo que eu estava abrindo o arquivo com o editor de texto e não o editor java.

Queria comentar em https://stackoverflow.com/users/607470/elroy-flynn resposta mas o comentário adicionar só funciona depois que eu tenho uma classificação de 50? não tenho certeza WTF que é ...

Obrigado Tom

Tom Orsi
fonte
O bloco de reputação é basicamente apenas para que as pessoas tenham motivos para obter mais, além de apenas ter mais. Como também atua como uma medida de quão envolvido e respeitado você está na comunidade (ou seja, como reputação), você obtém mais privilégios à medida que obtém mais reputação. Você pode dar uma olhada no tour para obter mais explicações sobre como o site funciona: stackoverflow.com/tour .
precisa saber é o seguinte
Este é realmente apenas um comentário, a resposta que você menciona já aborda a questão do editor de texto. Eu entendo se você não quiser excluí-lo e perder o karma.
Noumenon
1

Para mim, o problema era um conflito entre várias versões da mesma biblioteca. O assistente Eclipse estava usando uma versão mais antiga que o maven.

Eu tive que ir para o diretório .m2 e excluir a versão indesejada da lib + reiniciar o eclipse.

ilinca
fonte
1

Sinto problemas no Eclipse Neon ao editar um arquivo que não pertence ao diretório do projeto . Quando copio o mesmo arquivo no diretório raiz do projeto, nem mesmo no diretório src, a conclusão começa a funcionar.

Quando o arquivo é aberto a partir de um diretório diferente, apenas a conclusão do JRE funciona. Por exemplo: java.conclui, mas junit.não.

Jarekczek
fonte
1

Caso alguém chegue a um ponto desesperado onde nada funcione ... Ocorreu-nos que o assistente de conteúdo diminuiu de alguma forma para que nenhuma sugestão fosse mostrada, apenas o "Press Ctrl + Space for non-Java ..." podia ser visto. Portanto, bastava arrastar o canto do assistente de conteúdo para ampliar o pop-up.

Eu sei, embaraçoso. Espero que ajude.

Nota: este era um servidor Ubuntu com Xfce4 usando o Eclipse Oxygen.

tete
fonte
1

Para aqueles que usam a versão mais recente do eclipse 3-19:

Aconteceu comigo ao atualizar da versão do Oxygen para a versão eclipse 3-19 , por isso presumo que o recurso de preenchimento automático não tenha migrado corretamente durante o processo de atualização.

A única solução que funcionou para mim foi criar um novo espaço de trabalho do eclipse e importar os projetos para ele. Pode levar alguns minutos, mas vale a pena - comparando com o tempo gasto em outras soluções ...

Naor Bar
fonte
Sim, para mim, não consigo navegar pelos métodos java, clique em procurar / abrir declaração não está funcionando. E isso está acontecendo com bastante frequência, os arquivos da classe java se tornaram efetivamente arquivos de texto. Então, continuo excluindo o espaço de trabalho e importando o projeto maven, de volta à ação em um minuto.
signonsridhar
0

Eu encontrei esse problema desde a atualização para o Eclipse 2019-09. Com base em algumas das sugestões acima, foi isso que funcionou para mim.

Eu tive que ir para Eclipse -> Preferências -> Java -> Editor -> Assistente de Conteúdo -> Avançado.

Editor Java / Assistente de Conteúdo Avançado

Descobri que, se eu ativar qualquer uma das propostas de ligação de chave, proposta Java Não Tipo, Java, Java (Focado na Tarefa) ou Tipo Java, poderia usar a conclusão automática. Se eu ativá-los, não apenas o trabalho foi concluído automaticamente, como também obtive os métodos duplicados listados. Estou supondo, mas provavelmente usarei propostas de tipo Java. Qualquer esclarecimento sobre o que difere desses quatro tipos seria apreciado.

Bill Snee
fonte
0

Executando o STS em projetos Java Spring Boot, eis o que funciona para mim:

insira a descrição da imagem aqui

theRiley
fonte