Ao depurar um aplicativo java no eclipse, recebo o erro " Origem não encontrada " em dois casos:
- Entrando em um arquivo em um projeto diferente que já foi importado
- Entrando em um arquivo em um repositório maven instalado
Os arquivos estão lá, mas o eclipse não entra neles, mas mostra um botão para " anexar fonte "
Tentei anexar (que abriu uma caixa de diálogo para definir uma variável ?!) e o eclipse pulou para o arquivo, mas o depurador não pôde inspecionar nenhuma variável lá. Também anexar manualmente a fonte de cada dependência não é prático, pois no meu caso existem milhares de arquivos de dependência.
Eu sou novo em eclipse \ java, portanto, uma explicação de por que isso está acontecendo + como resolver isso ajudaria muito!
Apenas 3 etapas para configurar o Eclipse IDE:
Editar pesquisa de origem Selecione o comando Editar pesquisa de origem ... [Editar pesquisa de origem] para abrir a caixa de diálogo Caminho de origem, que permite fazer alterações no caminho de pesquisa de origem do destino de depuração selecionado.
IMPORTANTE Reinicie o Eclipse após esta última etapa.
fonte
Os sintomas descrevem perfeitamente o caso em que a classe encontrada não tem uma fonte associada (ou atribuída).
Mas e se o Eclipse ainda sugerir que você anexe a fonte, mesmo se eu definir corretamente minhas classes e suas fontes:
Isso quase sempre significa que o Eclipse está encontrando a classe de um lugar diferente do que você espera. Inspecione seu caminho de pesquisa de origem para ver onde ele pode obter a classe errada. Atualize o caminho de acordo com suas descobertas.
O Eclipse não encontra nada quando o ponto de interrupção é atingido:
Isso acontece quando o caminho de pesquisa de origem não contém a classe, que está carregada no momento no tempo de execução. Mesmo se a classe estiver na área de trabalho, ela poderá ficar invisível para a configuração de inicialização, porque o Eclipse segue o caminho de pesquisa de origem estritamente e anexa apenas as dependências do projeto, que está atualmente depurado.
Uma exceção são os pacotes de depuração no PDE . Nesse caso, como o tempo de execução é composto de vários projetos, que não precisam declarar dependências um do outro, o Eclipse encontrará automaticamente a classe na área de trabalho, mesmo que não esteja disponível no caminho de pesquisa de origem.
Não consigo ver as variáveis quando atingi um ponto de interrupção ou ele apenas abre a fonte, mas não seleciona a linha do ponto de interrupção:
Isso significa que, no tempo de execução, a JVM ou as próprias classes não possuem as informações de depuração necessárias. Cada vez que as classes são compiladas, as informações de depuração podem ser anexadas. Para reduzir o espaço de armazenamento das classes, algumas vezes essas informações são omitidas, o que torna a depuração desse código um problema. Sua única chance é tentar recompilar com a depuração ativada.
O visualizador de origem do Eclipse mostra linhas diferentes daquelas que são realmente executadas:
Às vezes, pode mostrar que o espaço vazio também é executado. Isso significa que suas fontes não correspondem à sua versão de tempo de execução das classes. Mesmo se você acha que isso não é possível, é verdade, portanto, certifique-se de configurar as fontes corretas. Ou seu tempo de execução corresponde às alterações mais recentes, dependendo do que você está tentando fazer.
fonte
De http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source
"Ao executar no modo de depuração, clique com o botão direito do mouse no thread em execução (na guia threads) e selecione Editar pesquisa de código-fonte. Nesse momento, você poderá adicionar o projeto / jar necessário que contém seu código-fonte."
Adicionei meu projeto atual dessa maneira e resolveu meu problema
fonte
Eu tive um problema semelhante com o meu projeto eclipse maven. Eu lutei com esse problema há muito tempo e tentei reconstruir o projeto com
e isso ajudou.
Nota: O uso desta abordagem confundirá o plugin m2e, pois as duas abordagens são muito diferentes. O m2e adiciona um nó virtual ao seu projeto chamado "Dependências do Maven" e pede ao Maven para adicionar todas as dependências lá.
mvn eclipse:eclipse
, por outro lado, criará muitas entradas individuais no arquivo.classpath
. O Eclipse os manipulará como se você incluísse JARs manualmente em seu projeto.A menos que você saiba como o caminho de classe no Eclipse funciona, essa abordagem não é recomendada.
fonte
mvn eclipse:eclipse
adicione dependência do projeto ao caminho de construção do java, para que funcione. Além disso, o plugin m2eclipse adicionará a dependência do projeto apenas em "Maven Dependencies", que está na guia Libraries e o depurador não consegue encontrar.Remova a configuração de depuração existente e crie uma nova. Isso deve resolver o problema.
fonte
Eu estava enfrentando o mesmo problema, segui os passos abaixo.
Window=> Preferences=> Java=> Installed JREs,
Você vê na tela acima
Jre1.8.0_12
está selecionada.selecione o JRE que você está usando e clique em Edit. Agora você deve ver a tela abaixo.
Clique no diretório, procure Jdk, ele deve se parecer com a tela abaixo.
clique ok e pronto
fonte
java.
comojava.lang.String
)Eu tive o problema de que meu Eclipse não estava depurando o código fonte do meu projeto. Eu estava recebendo uma página em branco com "Nó do código fonte encontrado".
Por favor, clique no botão Anexar código fonte. Em seguida, exclua a pasta "padrão", clique em adicionar e vá para o local do projeto e anexe. Isso funcionou para mim
fonte
No meu caso, mesmo após editar a pesquisa de origem e adicionar o projeto, não funcionou. Eu configurei o caminho de compilação do projeto.
Depois disso, selecionei a Biblioteca do Sistema JRE e funcionou.
fonte
Evidentemente, o Eclipse não sabe automaticamente onde está o código fonte dos jars dependentes. Não está claro por que o depurador não pôde inspecionar variáveis depois que a fonte foi anexada. Uma possibilidade é uma fonte incorreta / incompatível.
Supondo que você tenha um projeto maven e que as fontes das dependências tenham sido baixadas e estejam disponíveis no repositório local, você pode instalar o m2eclipse , o plug-in maven eclipse e ver se isso ajuda a solucionar o problema.
fonte
Você pode ter o código fonte de uma dependência acessível ao Eclipse. Mas o Eclipse não sabe o código-fonte para o código que é carregado dinamicamente. Por exemplo, através do Maven.
No caso do Maven, eu recomendo que você use o plugin run-jetty-run:
http://code.google.com/p/run-jetty-run/
Como solução alternativa, você também pode se conectar a uma JVM em execução com o depurador e verá o código. Como alternativa, você pode usar o plugin Dynamic Source Lookup para Eclipse a partir daqui:
https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup
Infelizmente, isso não me ajudou, pois tem problemas com os caminhos do Windows com espaços.
Eu preenchi uma solicitação de aprimoramento no Eclipse Bugzilla e se você concorda que esse problema "A fonte não encontrada" deve desaparecer para sempre, vote aqui:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065
Obrigado!
Sasa
fonte
No meu caso, em "Attach Source", adicionei o outro diretório do projeto maven no painel "Source Attachment Configuration". Adicionar a versão mais recente do repositório m2 não funciona. Todas as classes do outro projeto maven não foram abertas.
Aqui teste foi o meu outro projeto maven contendo todas as fontes java.
fonte
Clique em -> Editar caminho de pesquisa de origem
depois então
Clique em -> Adicionar, finalmente, selecione o projeto Java e selecione o caminho do projeto.
Fonte: https://www.youtube.com/watch?v=IGIKPY6q1Qw
fonte
Eu tive o mesmo problema. No meu caso, desabilitei o Window-Preferences-Java-Debug [Suspender a execução em exceções não capturadas]. Então, o console me mostrou o erro correto: meu usuário do MySQL não tinha privilégios para acessar o banco de dados. De acordo com este tópico.
fonte
Informações: Essa é uma solução possível quando você usa o maven (pom.xml) em alguns projetos.
Se você estiver trabalhando com o maven, certifique-se de qual versão está usando dentro do pom.xml de acordo (por exemplo, 1.0.1-INSTANTÂNEO). Pode ser possível que seu código esteja atualizado, mas suas dependências do pom.xml ainda estão utilizando os JAR / Snapshots antigos (com o código antigo).
Encontrando o problema:
fonte
Se você estiver no eclipse ou no STS, instale e use o GC (GrepCode Plugin), algum tempo você não precisará anexar o arquivo .zip de origem ao caminho do projeto, para que o GrepCode funcione bem para você.
fonte
Eu tive um problema relacionado à conexão com a depuração do servidor Glassfish no Eclipse. Isso foi causado pelo carregamento do código-fonte de um repositório diferente (mudando de SVN para GitHub). No processo, as classes compiladas incorretas foram usadas pelo servidor Glassfish e, portanto, o tempo de origem e de execução estaria fora de sincronia com os pontos de interrupção aparecendo nas linhas vazias.
Para resolver isso, renomeie ou exclua a pasta superior do diretório de classes e o Glassfish recriará toda a árvore de diretórios de classe, incluindo a atualização dos arquivos de classe com a versão compilada corretamente.
O diretório de classes está localizado em: / workspace / glassfish3122eclipsedefaultdomain / eclipseApps / <seu aplicativo da web> / WEB-INF / classes
fonte
No meu caso com projetos tomcat, verifiquei o projeto aqui: Janela - Preferências - Tomcat - Caminho de origem - Adicione projetos java ao caminho de origem
fonte
No meu caso, a versão Maven do outro projeto referenciado não corresponde à versão do projeto de teste. Uma vez que eram iguais, o problema desapareceu.
fonte
Ao executar no modo de depuração, clique em Editar pesquisa de origem depois de suspenso do encadeamento. Neste ponto, poderemos adicionar o projeto / jar necessário que contém seu código-fonte. Depois que adicionei meu projeto atual dessa maneira, resolvi o meu problema. obrigado
fonte
Se você deseja anexar o código-fonte a qualquer JAR por download automático, tente usar este plugin do Eclipse Java Source Attacher
fonte
Eu tive esse problema enquanto trabalhava no código java para processar um arquivo do Excel que contém um conjunto de dados e, em seguida, convertê-lo em um arquivo .csv, tentei respostas para este post, mas elas não funcionaram. o problema era os próprios arquivos jar. depois de baixar os arquivos jar necessários, um por um (versões mais antigas) e adicioná-los ao meu projeto, o erro "fonte não encontrada" desapareceu. talvez você possa verificar seus arquivos jar. espero que isso ajude.
fonte
isso funcionou para mim
clique com o botão direito do mouse em projeto -> Propriedades -> Conjunto de Implantação -> adicione seu jar
fonte
Acesse Configuração de depuração no eclipse e use a meta abaixo para executar seu aplicativo.
-Dmaven.surefire.debug
por exemplo
-Dmaven.surefire.debug exec: java
fonte
Bem, aqui está o que funcionou para mim. Eu tentei todas as soluções possíveis no StackOverflow que existiam. Tentei alterar meu local de origem no menu de depuração, instalei o plugin m2e Eclipse, mudei do Maven incorporado e instalei o run-jetty-run e nada funcionou. Agora, vou ressaltar que não estava tentando visualizar o código fonte de uma pessoa externa, só queria ver meu código PRÓPRIO, mas toda vez que "entrava" nos meus métodos que escrevi que estavam no MEU projeto, obtive o Erro "Origem agora encontrada".
Depois de finalmente perguntar a um especialista, meu problema foi que a primeira coisa que o Eclipse estava fazendo foi chamar um ClassLoader, que você pode ver na pilha de depuração. Tudo o que eu precisava fazer era F6 (passar por cima) e depois me levou de volta à minha ligação original e depois F5 (entrar). E lá estava o meu código. Suspiro ... uma solução tão simples, mas uma hora desperdiçada.
fonte
Para iniciantes,
Existe a possibilidade de o arquivo jar fazer parte do projeto que você ainda não incluiu na área de trabalho do Eclipse.
Para isso, você precisa saber o nome do projeto do arquivo jar. Digamos, por exemplo, abc -18.0.0-SNAPSHOT.jar, significa que o projeto que você deve incluir no seu espaço de trabalho é abc .
fonte
Eu tive o mesmo problema com o eclipse 2019-03 (4.11.0) e só consegui resolver isso fazendo a depuração via depuração remota em vez de iniciá-la diretamente no modo de depuração.
fonte
Anexar fonte -> Adicionar -> Arquivo Externo -> selecione o jar -> aberto -> concluído
o problema é procurar o jar de fontes e anexá-lo.
por exemplo, o jar termina com "-sources" Stax2-api-3.4.1-sources
fonte
Se você está tentando depurar seu projeto maven java e o eclipse não é capaz de encontrar sua fonte, tente um destes.
Tente maven-> update e depois depure
agora tente depurar
fonte
No eclipse do fóton, tente desativar "Janela-> Preferências-> Java-> Depurar-> Usar pesquisa avançada de origem"
Editar: Há um bug relacionado nesta versão do eclipse que leva a uma mensagem "fonte não encontrada" durante a depuração de aplicativos Java. Consulte o relatório de erros bugs.eclipse.org/bugs/show_bug.cgi?id=537699 para obter mais detalhes
fonte