2010-08-20 2 views
71

Я смущен этими двумя терминами.В чем разница между дорожкой класса и контуром сборки

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

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

ответ

80

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

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

+0

Но javac принимает аргумент classpath. Можно ли сказать, что этот параметр «перегружен» для указания пути сборки? – aioobe

+2

Нет. Аргумент _classpath_ является подсказкой для компилятора, что он должен ожидать, чтобы он был доступен/предоставлен во время выполнения, поскольку вы не создаете каждый класс, который используете сами (например, JFC, Libraries, ...). _buildpath_ содержит исходные и/или исходные/скомпилированные зависимости и где их искать. –

+0

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

3

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

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

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

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

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

+0

Вы даже не указали путь сборки в своем ответе. – aioobe

+0

Спасибо @aioobe, я пропустил изначально, отредактировал сейчас. – pavanlimo

23

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

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

+0

Не могли бы вы сказать, что путь класса используется для поиска файлов '.class' (и других скомпилированных ресурсов), в то время как путь сборки используется для поиска исходных файлов, которые необходимо скомпилировать? – Adam

+0

@Adam Я не думаю, что это абсолютно верно. В пути сборки нужны файлы .class для компиляции исходных файлов. Таким образом, путь сборки также использует путь класса за кулисами. Если вы потратите некоторое время на компиляцию и запуск java-проекта с помощью java-CLI, вы можете это увидеть. В javac и java-команде есть опция classpath, потому что они оба могут понадобиться. –

38

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

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

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

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