navegação de código vscode “Falha ao obter fontes.”

0

Estou usando o VSCODE para desenvolver códigos em Java com o "Java Extension Pack". Eu encontrei o problema que o código de navegação do vscode não funciona como esperado.

Anteriormente, eu podia usar "Ctrl + Clique" (consulte a descrição: link ) para verificar a definições de pacotes Java, como java.util.HashMap etc.

No entanto, depois de reinstalar meu sistema operacional, a navegação do código não funcionou como esperado. Ao contrário de alguns posts on-line (consulte link ou link ), no meu caso, funciona, mas mostra o arquivo .class com esses comentários no topo do arquivo. Deixe-me usar o Hashmap como exemplo.

/ * HashMap.class * /

// Failed to get sources. Instead, stub sources have been generated by the disassembler.
// Implementation of methods is unavailable.
package java.util;
public class HashMap<K,V> extends java.util.AbstractMap implements java.util.Map, java.lang.Cloneable, java.io.Serializable { 
 // many declartions for methods below
 ...
 }

O que eu preciso é navegar para o HashMap.java em vez de HashMap.class. Eu uso a extensão "Setting Sync", que restaura todas as minhas configurações anteriores, então não acho que haja problemas com minha configuração. Ainda fornecerei algumas configurações do usuário relacionadas abaixo

  "java.classPath": [],

  // Specifies the folder path to the JDK (8 or more recent) used to launch the Java Language Server.
  "java.home": null,

  // Installation directory of Java 8
  "java.home": "",

  // Traces the communication between VS Code and the Java language server.
  "java.trace.server": "off",

Mais informações:

SO: Ubuntu 18.04 LTS

Versão do VSCODE: 1.22.2

versão openjdk "1.8.0_162"

Qualquer ajuda será apreciada! Obrigado yoU!

    
por Xin Chen 27.04.2018 / 01:52

1 resposta

0

Eu tive o mesmo erro, exceto com um jar de origem no meu repositório local, em vez de no HashMap.

Eu consertei encerrando o Visual Studio Code, removendo todos os arquivos .classpath , .factorypath e .project (meu projeto tem submódulos, então há vários deles), reabrindo o VS Code e permitindo que ele encontre tudo novamente.

Há provavelmente uma maneira mais elegante de fazer isso, mas a força bruta funcionou.

    
por Nathan Walther 21.06.2018 / 22:35