Classpath java как прописать intellij idea
Перейти к содержимому

Classpath java как прописать intellij idea

  • автор:

Classpath

В большинстве случаев команды java и javac должны найти другие классы необходимые для компиляции и выполнения. Самый распространенный случай — это использование классов входящих в Java SE. Или, например, нам нужно скомпилировать и запустить класс, который использует другие классы, не входящие в Java SE.

Команды java и javac используют следующий алгоритм поиска:

  1. Они используют один и тот же список каталогов, в которых ищут необходимые файлы.
  2. Обе команды в процессе поиска просматривают список каталогов в одном и том же порядке.
  3. Как только необходимый класс найден, процесс поиска прекращается. Если список каталогов содержит два или более классов с одним и тем же именем, используется первый найденный.
  4. Первое место используемое в процессе поиска — это каталоги содержащие классы Java SE.
  5. Второе место — каталоги определенные в так называемом Сlasspath.

Classpath может быть задано двумя способами:

  1. Как переменная окружения CLASSPATH. Команды java и javac используют этот способ по умолчанию.
  2. Как ключ -classpath (или -cp) команд java и javac. Этот способ переопределяет список каталогов заданный переменной окружения, но только для конкретного вызова. Данный метод является более предпочтительным.

Способы задания Classpath Фото

2. Использование ключа -classpath

Рассмотрим использование ключа -cp используя классы first.Example1 и second.Example2 , описанные здесь. Но предположим, что класс second.Example2 находится в другом проекте и доступны только его .class файлы. На рисунке изображена схема каталогов для данного примера:

Структура каталогов фото

Следующая команда будет использована для компиляции first.Example1 класса, где ключ -cp указывает на расположение .class файла second.Example2 :

cd projectExample1 javac -d classes -cp ../projectExample2/classes src/first/Example1.java 

Для запуска программы используется команда:

cd projectExample1 java -cp classes;../projectExample2/classes first.Example1

Ключ -cp указывает расположение .class файла second.Example2 (как и при компиляции), а также путь для поиска .class файла first.Example1 — classes.

Несколько важных правил при использовании ключа -cp :

  1. Ключ -cp может содержать несколько каталогов, разделенных точкой с запятой, как показано в примере при запуске команды java .
  2. Если указывается подкаталог, это НЕ означает что родительский каталог тоже входит в classpath. Например, для ключа -cp ../projectExample2/classes , каталог ../projectExample2 не будет входить в classpath.
  3. Если используется ключ -cp , то команды javac и java НЕ ищут классы в текущем каталоге по умолчанию. Для указания текущего каталога используется точка. Например:

cd projectExample1/classes java -cp .;../../projectExample2/classes first.Example1​

Презентацию с видео можно скачать на Patreon .

Как правильно указать classpath для jar файлов в Intellij IDEA 2020.2?

Скачал jar файл javax.mail. И никак не могу понять как его засунуть в classpath. Из-за этого программа кидает NoClassDefFoundError. Как решить?

Отслеживать
задан 19 фев 2021 в 17:45
157 5 5 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

В IntelliJ вы конфигурируете используемые библиотеки, а при запуске все библиотеки добавляются в classpath самой IDE.

Что добавить библиотеку в проект в структуре проекта выбираете Project Settings -> Libraries -> + -> Java :

добавление библиотеки в проект Intellij

Отслеживать
ответ дан 19 фев 2021 в 18:15
Roman-Stop RU aggression in UA Roman-Stop RU aggression in UA
23.4k 1 1 золотой знак 18 18 серебряных знаков 29 29 бронзовых знаков

  • java
  • intellij-idea
  • classpath
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.17.3559

CLASSPATH в IntelliJ IDEA

Author24 — интернет-сервис помощи студентам

Здравствуйте. Подскажите, пожалуйста, как можно увидеть или получить значение classpath в IntelliJ IDEA?
И ещё: не могу понять, что делает пункт меню VCS — Git — Branches — Checkout Tag or Revision. Что такое Git я знаю, внятно перевести на русский этот пункт меню не могу.

Здесь вы можете заказать любую студенческую или школьную работу.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

intellij idea
Здравствуйте! Помогите, у меня есть код на java, только незнаю как его вставить в intellij idea.

Intellij Idea
Ошибка с @Test. Test package Main; import org.junit.jupiter.api.BeforeEach; import.

IntelliJ IDEA
Здравствуйте. Столкнулся сегодня с проблемкой в IntelliJ IDEA Community Edition 14.1.1, после.

Java intellij idea
Здравствуйте. Буду рад ответу, как в intelij idea найти класс system? И еще, в java все библиотеки.

1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2

Ну, насколько я понимаю, tag позволяет отмечать определённые коммиты, шоб потом к ним вернуться. Механизм ревизии работает примерно также, но предоставляет больший функционал. Ну и собсна checkout позволяет между ними (тэгами) переключаться

Регистрация: 17.08.2017
Сообщений: 132

Gungala, расскажите, пожалуйста, про переменную окружения classpath. Где я её могу увидеть? Дело в том, что у меня никак не получается прописать путь к папке с ресурсами. В интернете пишут, что надо указывать либо абсолютный, либо относительный путь к ресурсам, дописывая его с учётом значения classpath. Я же этот classpath вообще нигде не могу найти.

1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2

Если ты имеешь ввиду системную переменную, то вот, а если о classpath, который собирает сама IDE, то он должен быть в файле в корне проекта

Регистрация: 17.08.2017
Сообщений: 132

Gungala, добрый вечер, простите, что долго не отвечал. Меня интересует «classpath, который собирает сама IDE». Если я правильно Вас понял, то у проекта со структурой, показанной на картинке project_structure.png, classpath — это Full_kursach.
Правильно ли я понимаю, что classpath свой у каждого проекта и увидеть его можно в разделе Run — Edit Configurations — Use classpath of module (картинка Edit_conf.png)?
Папка, окрашенная в цвет ясного неба, в моём случае java, это source root?

Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

16673 / 9963 / 2757
Регистрация: 21.10.2017
Сообщений: 21,890

ЦитатаСообщение от Иван24 Посмотреть сообщение

это source root?

Да.
Кстати, нагугли книженцию — Давыдов С.В., Ефимов А.А. — «IntelliJ IDEA. Профессиональное программирование на Java.»
Несмотря на возраст, есть довольно много интересных фич.

1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2

Не знаю где в идее хранится значение classpath, но при запуске программы показывается команда, с помощью которой прога, собсна, запустилась

Регистрация: 17.08.2017
Сообщений: 132

Gungala, Вы навели меня на мысль и я внимательно глянул на команду, с помощью которой «прога» запускается. Нашёл интересный кусочек своей команды: -classpath H:\IDEA_projects\Full_kursach\target\classes MyStart6
В директорию target/ я как-то никогда внимательно не заглядывал (честно, я плохо пока представляю какую роль она играет), заглянув увидел, что она тоже содержит папки с ресурсами. Предположив, что classpath — это скопированная выше часть команды запуска приложения, я прописал путь к ресурсам, лежащим внутри target/, относительно -classpath. При перезапуске приложения ошибка java.lang.NullPointerException исчезла! Кажется, classpath найден!
P.S.: По моему разумению относительно classpath надо прописывать пути к ресурсам.

Добавлено через 18 минут
iSmokeJC, книжку, кажется, бесплатно не скачать.

Регистрация: 17.08.2017
Сообщений: 132

В папке /target/Images у меня лежат .png и .jpg-файлы и к ним прописать путь получилось благополучно:

static final String PATH_PHOTO = "/Images/";

В папке /target/Files у меня лежат обычные текстовые файлы, к ним я по аналогии прописываю путь:

static final String PATH_PROJECT = "/Files/";

Однако при запуске приложение оказывается не в состоянии отыскать текстовый файл. Возникает ошибка, приведённая на картинке.
Названия совпадают, проверял.
Доступ к файлу организован следующим образом:

1 2 3 4 5 6 7
try(BufferedReader br = new BufferedReader(new FileReader(MyStart6.class.getResource(MyStart6.PATH_PROJECT + "CountPanels").toString()))){ String s = br.readLine(); if (s != null) MyGournal.setCount(Integer.parseInt(s)); } catch (IOException ex) { System.out.println("Ошибка в WriterReader.getCountInFile(): " + ex.getMessage()); }

Classpath java как прописать intellij idea

Контент представлен пользователями ОК. Здесь вы найдете все, что нужно, чтобы быть в курсе последних новостей и тенденций в мире технологий. classpath java как прописать intellij idea – ОК место, где вы сможете найти ответы на все вопросы, связанные с гаджетами, а также прочитать интересные статьи, подготовленные нашими экспертами. Будьте в центре событий и следите за всеми новинками в области гаджетов. Изучайте контент, если вы искали classpath java как прописать intellij idea и интересуетесь этой увлекательной темой.

Часто ищут

  • Футбол
  • Ресницы
  • Рассказы
  • Как сшить костюм
  • Продам
  • Жареная картошка
  • Подслушано
  • Стихи
  • Снасти
  • Новости
  • Пирожки с капустой
  • Приколы с животными
  • Рецепты на скорую руку
  • Вышивка крестиком
  • Юмор
  • Топ фильмов
  • Вкусные рецепты
  • Нейросети
  • Как испечь торт
  • Смешные картинки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *