Как добавить файлы JAR библиотеки, на которые имеется ссылка, используя относительный путь
Я проверил этот вопрос и многие другие сообщения, чтобы помочь мне решить мою проблему, но ничего не помогло.
Я открыл существующий проект Java, используя vscode
Open Java Project
вариант. Мне удалось добавить библиотеки, на которые есть ссылки, в существующий обычный проект Java (не похоже, что это Maven или какой-либо специальный проект), используя абсолютный путь к
src/lib
папка из корневой папки основного проекта. Однако, когда я добавляю относительный путь, он переводится в абсолютный путь, начиная с
C:
диск, затем
Project Name
из файла. Затем я получаю много ошибок, указывающих на то, что указанные библиотеки не найдены.
Когда я изменил указанную библиотеку на абсолютный путь, все работало нормально без каких-либо проблем. Обратите внимание, что я изменил путь к библиотеке в файле. Когда я пытаюсь добавить библиотеки из
Referenced Libraries (Read Only)
под деревом в vscode, нажав
+
, это не имеет никакого эффекта. Этот шаг изменит файл в
.vscode
папку, добавив соответствующие значения в свойство
"java.project.referencedLibraries"
. Только когда я изменю файл в корневой папке проекта, он вступит в силу.
Я не понимаю, как настроить библиотеки, на которые есть ссылки, для проектов Java в vscode. Ниже приводится краткое изложение вопросов:
- Как добавить библиотеку, используя относительный путь к проекту Java на основе корневой папки проекта?
- В чем разница между добавлением библиотеки с помощью файла и изменением
settings.json
файл? Кто победит? - Как добавить папку со всеми файлами JAR в качестве указанной библиотеки в проект Java? Это сделано для того, чтобы не добавлять по одному файлу за раз.
- Почему и
.project
файлы не отображаются в представлении обозревателя vscode? Он будет отображаться только тогда, когда вы откроете файл в vscode из проводника Windows. - Я нашел команду
Configure Classpath
но он предназначен только для чтения, и я думаю, что это то же самое, что и файл. Есть ли способ изменить его из пользовательского интерфейса vscode? - Когда я удаляю файл или удаляю
classpathentry
строки из.classpath
файл, узел "Библиотеки, на которые есть ссылки (только чтение)" вJAVA PROJECTS
в представлении vscode был удален. Почему?
См. Снимки ниже для получения более подробной информации.
Я ценю вашу помощь.
3 ответа
По сути, расширение java ищет jar-файлы из ссылочных библиотек .
Вот мои ответы на ваши вопросы:
Щелкните банку правой кнопкой мыши и выберите
copy relative path
затем добавьте его в настройки, нажмите кнопку «Обновить», после чего добавленная банка должна отображаться в разделе «Библиотеки ссылок»:CLASSPATH переменный являются одним из способов сказать приложения, в том числе инструментов JDK, где искать классы пользователей. Когда дело доходит до добавления банок, настройки
java.project.referencedLibraries
побеждает.Невозможно выбрать папки jar, но вы можете использовать сочетания клавиш, чтобы выбрать все jar, а затем добавить их.
Есть настройка под названием
"java.configuration.checkProjectSettingsExclusions"
, и по умолчанию это правда, поэтому.project
а также.classpath
не будет отображаться в VS Code.На моем компьютере работает команда Java: Configure Classpath , которая может настраивать текущий проект.
Я предполагаю, что когда вы открываете новый проект, vscode выскакивает окно и спрашивает вас, доверяете ли ему, и вы выбираете Not , тогда проект доступен только для чтения. Доверяя рабочему пространству, попробуйте снова выполнить команду Java: Configure Classpath , он должен быть доступен для записи.
Ответ @Molly Want-MSFT мне очень помог. Вот что я сделал, чтобы навсегда решить эту проблему. Я применял описанные ниже шаги много раз, чтобы каждый раз проверять, будут ли они работать.
Шаги по открытию Java-проекта как в Eclipse, так и в vscode:
Загрузите JDK, необходимый для vscode, Eclipse и вашего Java-проекта.
Импортируйте проект в Eclipse и настройте JDK для рабочей области и проекта. Кроме того, убедитесь, что уровень компиляции соответствует JDK.
Настройте Project JDK в соответствии со значением по умолчанию для рабочей области.
Создайте проект (Project-Cleanup) и экспортируйте JAR, чтобы убедиться, что все в порядке.
Теперь откройте проект в vscode.
Настраивать
java.home
в Настройках, в разделах «Пользователь» и «Рабочая область». Это должно быть JDK-11 или выше, чтобы vscode мог правильно работать для проектов Java.Добавьте ссылки на установленные JDK в User's
settings.json
в разделе.Перезапустите vscode и выберите вариант из поля зрения. Убедитесь, что JDK проекта Java обнаружен и работает правильно.
Возможно, вам придется открыть один из файлов исходного кода Java. Подождите немного, пока он не успокоится. Проверьте состояние сборки Java, щелкнув вращающийся значок в правом нижнем углу. Этот значок предназначен для
Language Server
и он превратится в значок, который будет выглядеть как большой палец вверх, когда сборка / компиляция будет завершена.Закройте и откройте, чтобы убедиться, что JDK был обнаружен vscode.
Убедитесь, что оба
JRE System Libraries
и под обзором видны без ошибок. Проверьте представление «Проблемы» и попытайтесь устранить все ошибки.Должно быть
Read Only
потому что этот проект был настроен в Eclipse. Вы можете удалить и.project
файлы и снова откройте проект в vscode, и попробуйте исправить проблемы, добавив библиотеки с помощью+
кнопка. Когда такие файлы будут удалены, проект станетUnmanaged
. Позже вы сможете восстановить такие файлы.
Когда проект
unmanaged
, ты используешь
Configure Java Runtime
из просмотра, и вы можете проверить тип проекта. Вы можете изменить JDK на один из установленных согласно разделу
"java.configuration.runtimes"
в пользователе
setting.json
.
Если
Referenced Libraries
доступен только для чтения, он не действует, даже если вы можете добавлять библиотеки в settings.json, но.classpath
файл победит.В представлении вы можете использовать опцию
Build Workspace
а такжеClean Workspace
для поиска и устранения неисправностей.Наконец, вы можете
Export JAR
из варианта наJAVA PROJECTS
Посмотреть. Этот вариант непонятен и выглядит как стрелка вправо|-->
.
Я надеюсь, что это поможет, и если у вас есть какие-либо вопросы, оставьте комментарий, и я постараюсь ответить, когда это возможно.
Я просто меняю строки пути к банкам в файле .classpath , и это работает для меня.