2016-11-28 6 views
0

Я смущен о путях классов Eclipse Run/Debug и пути построения java-проекта. У меня есть некоторые идеи о разных из них, но я не совсем уверен, что я прав. Пожалуйста, исправьте меня, если я ошибаюсь или что-то не хватает.Eclipse classpath vs buildpath

  1. при щелчке правой кнопкой мыши по проекту Java и щелкните по настройке пути построения. это на самом деле изменения .classpath файла этого проекта .... Для моего понимания, баночка файлы, которые перечислены в этом файле ... являются библиотеками, необходимой для составителя проекта.
  2. В окне Запуск/отладка конфигураций Eclipse есть вкладка Classpath. Файлы Jar, которые находятся под этой вкладкой, необходимы для Выполнение проект.

Q1. Я прав? Можно добавить дополнительную информацию?

Q2. Был один раз, я скомпилировал проект и начал его ... он работал нормально, пока я не использовал одну из функций, система бросает классNotFound exception..later on Я добавил недостающую банку в Buildpath, и эта функция работает еще раз. Итак, я здесь смущен. Если Buildpath используется для компиляции проекта .... это означает, что я не смог скомпилировать и запустить проект в первую очередь. Но это не так. Я что-то пропустил? Почему я не должен добавлять этот недостающий кусок в classpath вместо пути buildpath?

+0

Возможный дубликат [в чем разница между путём пути и пути сборки] (http://stackoverflow.com/questions/3529459/what-is-the-difference-between-class-path-and-build-path) –

ответ

0

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

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

+0

Спасибо, что ответили на мой вопрос, мистер Карр. Если я добавлю банку: ABC к пути построения проекта ..... Означает ли это, что он будет включен автоматически при запуске/отладке проекта? Или мне нужно сделать это вручную (под enclipse env). Также не могли бы вы привести мне пример, когда lib будет нужен только для конфигурации запуска/отладки, но не для пути сборки. – MIT

+0

Опять же, ресурсы в пути построения автоматически используются в конфигурации запуска для класса в проекте. Что касается косвенных ссылок, то это делается с помощью Reflection. Посмотрите "java reflection". –