Ошибка Ubuntu Snap vscode при попытке использовать java JDK

#java #ubuntu #visual-studio-code

#java #ubuntu #visual-studio-code

Вопрос:

Я заново изучаю Java и использую VSCode в качестве своей обычной среды разработки в Kubuntu 20.04. Мне нравится это для python и некоторых других языков, но у меня проблема с Java.

Я получаю следующую ошибку при открытии файла .java в среде разработки VSCode;

Извините, что-то пошло не так, активируя поддержку Intellicode для Java

и

Для запуска расширения Java требуется Java 11 или более поздняя версия. Пожалуйста, загрузите и установите…..

Теперь я могу скомпилировать свою простую Java-программу в командной строке и запустить ее без ошибок;

 $ javac HelloWorld.java
$ java HelloWorld
Hello, World!
$
  

Я гуглил это больше месяца, и я вижу других с этой проблемой, но я не вижу решений. Я узнал, что система Snap не позволяет программам выходить за пределы папки $HOME, а моя домашняя папка Java находится в /usr/lib/jvm/java-11-openjdk-amd64/ .

Как я могу настроить Snap, чтобы разрешить VSCode видеть Java в этой папке? Должен ли я просто скопировать Java JDK в свою папку $HOME?

Редактировать: я попытался использовать программную ссылку со следующими командами;

 ln -s /usr/lib/jvm/java-11-openjdk-amd64 /home/jc/dev/java11
  

и изменил VSCode settings.json следующим образом;

 "java.configuration.runtimes": [
      {
        "name": "JavaSE-11",
        "path": "/home/jc/dev/java11"
       },

]
  

Похоже, ошибка не исчезла. Я также попытался изменить файл конфигурации, чтобы он указывал прямо на ln -s / usr / lib /jvm / java-11-openjdk-amd64, но безуспешно.

Редактировать 2: я также попытался скопировать папки JDK в свою домашнюю папку, и это тоже не помогло.

Комментарии:

1. Вы пытались создать символическую ссылку в пространстве, доступном для привязки, и указать свой путь туда?

2. Не повезло. Я создаю ссылку с помощью команды ln -s /usr/lib/jvm/java-11-openjdk-amd64 /home/jc/dev/java11. Я отредактировал файл конфигурации vscode со следующим дополнением; «java.configuration.runtimes»: [ { «name»: «JavaSE-1.8», «path»: «/home/jc/ dev /java8», «default»: true }, { «name»: «JavaSE-11», «path»: «/home/jc/ dev /java11» }, ] Но безуспешно