Как добавить файлы JAR библиотеки, на которые имеется ссылка, используя относительный путь

Я проверил этот вопрос и многие другие сообщения, чтобы помочь мне решить мою проблему, но ничего не помогло.

Я открыл существующий проект Java, используя vscode Open Java Projectвариант. Мне удалось добавить библиотеки, на которые есть ссылки, в существующий обычный проект Java (не похоже, что это Maven или какой-либо специальный проект), используя абсолютный путь к src/libпапка из корневой папки основного проекта. Однако, когда я добавляю относительный путь, он переводится в абсолютный путь, начиная с C: диск, затем Project Nameиз файла. Затем я получаю много ошибок, указывающих на то, что указанные библиотеки не найдены.

Когда я изменил указанную библиотеку на абсолютный путь, все работало нормально без каких-либо проблем. Обратите внимание, что я изменил путь к библиотеке в файле. Когда я пытаюсь добавить библиотеки из Referenced Libraries (Read Only) под деревом в vscode, нажав +, это не имеет никакого эффекта. Этот шаг изменит файл в .vscode папку, добавив соответствующие значения в свойство "java.project.referencedLibraries". Только когда я изменю файл в корневой папке проекта, он вступит в силу.

Я не понимаю, как настроить библиотеки, на которые есть ссылки, для проектов Java в vscode. Ниже приводится краткое изложение вопросов:

  1. Как добавить библиотеку, используя относительный путь к проекту Java на основе корневой папки проекта?
  2. В чем разница между добавлением библиотеки с помощью файла и изменением settings.jsonфайл? Кто победит?
  3. Как добавить папку со всеми файлами JAR в качестве указанной библиотеки в проект Java? Это сделано для того, чтобы не добавлять по одному файлу за раз.
  4. Почему и .projectфайлы не отображаются в представлении обозревателя vscode? Он будет отображаться только тогда, когда вы откроете файл в vscode из проводника Windows.
  5. Я нашел команду Configure Classpathно он предназначен только для чтения, и я думаю, что это то же самое, что и файл. Есть ли способ изменить его из пользовательского интерфейса vscode?
  6. Когда я удаляю файл или удаляю classpathentry строки из .classpath файл, узел "Библиотеки, на которые есть ссылки (только чтение)" в JAVA PROJECTSв представлении vscode был удален. Почему?

См. Снимки ниже для получения более подробной информации.

Я ценю вашу помощь.

3 ответа

По сути, расширение java ищет jar-файлы из ссылочных библиотек .

Вот мои ответы на ваши вопросы:

  1. Щелкните банку правой кнопкой мыши и выберите copy relative path затем добавьте его в настройки, нажмите кнопку «Обновить», после чего добавленная банка должна отображаться в разделе «Библиотеки ссылок»:

  2. CLASSPATH переменный являются одним из способов сказать приложения, в том числе инструментов JDK, где искать классы пользователей. Когда дело доходит до добавления банок, настройки java.project.referencedLibraries побеждает.

  3. Невозможно выбрать папки jar, но вы можете использовать сочетания клавиш, чтобы выбрать все jar, а затем добавить их.

  4. Есть настройка под названием "java.configuration.checkProjectSettingsExclusions", и по умолчанию это правда, поэтому .project а также .classpath не будет отображаться в VS Code.

  5. На моем компьютере работает команда Java: Configure Classpath , которая может настраивать текущий проект.

  6. Я предполагаю, что когда вы открываете новый проект, vscode выскакивает окно и спрашивает вас, доверяете ли ему, и вы выбираете Not , тогда проект доступен только для чтения. Доверяя рабочему пространству, попробуйте снова выполнить команду Java: Configure Classpath , он должен быть доступен для записи.

Ответ @Molly Want-MSFT мне очень помог. Вот что я сделал, чтобы навсегда решить эту проблему. Я применял описанные ниже шаги много раз, чтобы каждый раз проверять, будут ли они работать.

Шаги по открытию Java-проекта как в Eclipse, так и в vscode:

  1. Загрузите JDK, необходимый для vscode, Eclipse и вашего Java-проекта.

  2. Импортируйте проект в Eclipse и настройте JDK для рабочей области и проекта. Кроме того, убедитесь, что уровень компиляции соответствует JDK.

  3. Настройте Project JDK в соответствии со значением по умолчанию для рабочей области.

  4. Создайте проект (Project-Cleanup) и экспортируйте JAR, чтобы убедиться, что все в порядке.

  5. Теперь откройте проект в vscode.

  6. Настраивать java.homeв Настройках, в разделах «Пользователь» и «Рабочая область». Это должно быть JDK-11 или выше, чтобы vscode мог правильно работать для проектов Java.

  7. Добавьте ссылки на установленные JDK в User's settings.json в разделе.

  8. Перезапустите vscode и выберите вариант из поля зрения. Убедитесь, что JDK проекта Java обнаружен и работает правильно.

  9. Возможно, вам придется открыть один из файлов исходного кода Java. Подождите немного, пока он не успокоится. Проверьте состояние сборки Java, щелкнув вращающийся значок в правом нижнем углу. Этот значок предназначен для Language Server и он превратится в значок, который будет выглядеть как большой палец вверх, когда сборка / компиляция будет завершена.

  10. Закройте и откройте, чтобы убедиться, что JDK был обнаружен vscode.

  11. Убедитесь, что оба JRE System Librariesи под обзором видны без ошибок. Проверьте представление «Проблемы» и попытайтесь устранить все ошибки.

  12. Должно быть Read Onlyпотому что этот проект был настроен в Eclipse. Вы можете удалить и .project файлы и снова откройте проект в vscode, и попробуйте исправить проблемы, добавив библиотеки с помощью +кнопка. Когда такие файлы будут удалены, проект станет Unmanaged. Позже вы сможете восстановить такие файлы.

Когда проект unmanaged, ты используешь Configure Java Runtimeиз просмотра, и вы можете проверить тип проекта. Вы можете изменить JDK на один из установленных согласно разделу "java.configuration.runtimes" в пользователе setting.json.

  1. Если Referenced Libraries доступен только для чтения, он не действует, даже если вы можете добавлять библиотеки в settings.json, но .classpath файл победит.

  2. В представлении вы можете использовать опцию Build Workspace а также Clean Workspace для поиска и устранения неисправностей.

  3. Наконец, вы можете Export JAR из варианта на JAVA PROJECTSПосмотреть. Этот вариант непонятен и выглядит как стрелка вправо |-->.

Я надеюсь, что это поможет, и если у вас есть какие-либо вопросы, оставьте комментарий, и я постараюсь ответить, когда это возможно.

Я просто меняю строки пути к банкам в файле .classpath , и это работает для меня.

Другие вопросы по тегам