Код Visual Studio, расширение Java, как добавить jar в classpath

В Eclipse я добавляю библиотеку jar, используя

project → путь сборки → настроить путь сборки

Что эквивалентно в VisualStudioCode? Я посмотрел на launch.json. Определен класс pathpath. Добавление jars к этой переменной classpath (array) кажется неэффективным.

По сути, это дублированный вопрос о поддержке Java Language Support для Visual Studio, но этот вопрос остается без ответа.

Это такой чрезвычайно простой вопрос, что я действительно не понимаю, не найти решение для него в документации Microsoft или в поиске Google.

Ответ 1

VSCode отлично работает с Maven или Gradle. Но без них, насколько я знаю, они не предоставили прямого способа добавить файл jar в classpath.

Обходной путь - добавить запись в файл .classpath вручную.

Например, в приведенном ниже файле я вручную добавил common-logging-1.2.jar.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="output" path="bin"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
</classpath>

Ответ 2

Ужасное решение, но для меня это работает. (Предполагается, что Maven установлен).

Найдите свой каталог репозитория Maven, для меня это:

/Users/username/.m2/repository

Затем создайте требуемый путь после имени пакета. Если вы не знаете имя пакета, вы можете переименовать .jar в .zip и извлечь содержимое.

Также создайте номер версии, если у вас его нет, то создайте его. Вот пример структуры, которую я создал для byte-buddy-agent так как у нее нет фрагмента maven.

Сделав это, вы редактируете pom.xml и добавляете что-то в строку:

<dependency>
  <groupId>net.bytebuddyagent</groupId>
  <artifactId>byte-buddy-agent</artifactId>
  <version>1.9.8</version>
</dependency>

Сохраните файл, перезагрузите изменения, и у вас все получится. Куча файлов должна быть создана в каталоге.

enter image description here

Ответ 3

Для добавления внешних файлов Jar без maven или gradle.classpath файл должен быть изменен для библиотеки.. пример

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="lib" path="lib/log4j-1.2.6.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Но одно расширение конфликтует с vscode-java. https://marketplace.visualstudio.com/items?itemName=georgewfraser.vscode-javac. Отключите его, если вы установили функцию подавления ошибок, если обнаружите ее после изменения файла .classpath. Вы можете проверить это issue- https://github.com/redhat-developer/vscode-java/issues/956