В чем разница между Class Path и Build Path - PullRequest
79 голосов
/ 20 августа 2010

Я запутался с этими двумя терминами.

И что мне делать, чтобы создать файл в папке src проекта Spring MVC? Когда я создаю, используя объект File, он создает файл внутри C: \ SpringSourceTool ... Я полагаю, это ClassPath, верно?

Как мне получить папку applicationcontext или корень приложения?

Ответы [ 6 ]

88 голосов
/ 20 августа 2010

Путь сборки используется для сборки вашего приложения. Он содержит все ваши исходные файлы и все библиотеки Java, необходимые для компиляции приложения.

classpath используется для выполнения приложения. Это включает в себя все Java-классы и библиотеки, необходимые для запуска Java-приложения. Путь к классам является обязательным, путь по умолчанию - ., который используется, если виртуальная машина Java не может найти определенный пользователем путь. (CLASSPATH переменная окружения, -cp флаг или Class-Path: атрибут в манифесте jar)

49 голосов
/ 20 августа 2010

Путь к классам - это обычный способ сообщить (стандартному) компилятору Java и среде выполнения Java, где искать скомпилированные классы. Обычно это последовательность имен файлов JAR и имен каталогов. Путь к классу, используемый компилятором и системой времени выполнения, не должен быть одинаковым , но обычно должен быть , особенно для небольшого проекта.

Buildpath не является стандартной терминологией Java. Это термин для более богатого способа, которым типичная среда IDE определяет отношения между «проектами», составляющими приложение. Среда IDE использует это для определения пути к классу и пути к исходному коду для компиляции кода Java и пути к классу для его запуска. В среде IDE также используется путь сборки, чтобы выяснить, как упаковать код и его зависимости в виде (например) файла WAR.

Например, путь сборки Eclipse для проекта включает в себя другие проекты, от которых он зависит, и перечисляет любые дополнительные библиотеки JAR, которые содержит / полагается проект. В нем также перечислены пакеты в текущем проекте, от которых могут зависеть последующие проекты.

(Если вы используете Maven для своего проекта, механизм buildeath IDE является вторичным по отношению к зависимостям, объявленным в файлах POM. Например, при использовании Eclipse с m2eclipse, путь сборки синтезируется из файлов POM.)

27 голосов
/ 20 августа 2010

Путь к классу используется во время выполнения для загрузки скомпилированных классов и ресурсов.

Путь сборки используется во время компиляции, чтобы найти зависимости, необходимые для сборки вашего проекта.

4 голосов
/ 20 марта 2018

Я хотел бы добавить к ответу Andreas_D, чтобы объяснить, что путь сборки требуется IDE / компилятором для поиска внешних пакетов и классов , используемых вашим кодом. Иногда мы ссылаемсяк ним как 'зависимости' .

Примечание: эти внешние пакеты могут быть упакованы в сжатый файл .jar, или же в библиотеке 'может быть несколько файлов jar, упакованных«.Библиотека или группа библиотек часто составляют 'framework' .

Если для вашего кода требуется код, написанный другими, вы можете импортировать их в свой класс, используяimport команда.Однако этой команды недостаточно, поскольку компилятор или IDE должны знать, где находятся эти классы.Вы указываете это в пути сборки .

С другой стороны, classpath сообщает JVM, выполняющей ваше приложение, где найти какие-либо зависимости во время фактического выполнения вашего кода.

Также следует отметить: Classpath предназначен для использования JVM.

Buildpath предназначен для использования IDE / компилятором и является средством для создания classpath из среды разработки.Когда вы настраиваете свой путь компоновки через IDE, вы также настраиваете скрытый файл в своем проекте с именем .classpath.Это используется для предоставления пути к классам JVM при развертывании.

4 голосов
/ 20 августа 2010

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

В среде CLASSPATH вам нужно указывать только файлы .class (то есть jar, zip-файлы - внутри jar-файлов zip вы найдете только java-классы), т.е. вы помогаете виртуальной машине Java (JVM) находить файлы классов Java

Также, что я должен сделать, чтобы создать файл в папке src Spring MVC Проект? Когда я создаю, используя файл объект он создает файл внутри C: \ SpringSourceTool ...

Это то место, где JVM была запущена, если вы хотите создать файл еще где, используйте относительный путь отсюда.

См. это и это для получения дополнительной информации.

0 голосов
/ 05 мая 2019

build path используется IDE во время компиляции для создания проекта

Environment variable - глобальная системная переменная, доступная всем процессам, работающим в операционной системе (ОС).

PATH и CLASSPATH являются environment variables

PATH: ведение списка каталогов. ОС ищет в записях PATH исполняемые программы, такие как Java Compiler (javac) и Java Runtime (java).

CLASSPATH: ведение списка каталогов (содержащих много файлов классов Java .class) и файла JAR (однофайловый архив классов Java .jar). Компилятор Java и среда выполнения Java ищут в записях CLASSPATH классы Java, на которые есть ссылки в вашей программе.

Путь поиска пользовательских классов (короче, CLASSPATH): определяется в следующем порядке:

  1. По умолчанию current working directory (.).
  2. Записи в classpath environment variable, который переопределяет значение по умолчанию.
  3. Записи в параметре командной строки -cp (или -classpath), который переопределяет переменную среды classpath.
  4. Параметр командной строки времени выполнения -jar, который отменяет все вышеперечисленное.

Подробнее здесь

...