В чем разница между CLASSPATH "записями начальной загрузки" и "записями пользователей" в Eclipse? - PullRequest
13 голосов
/ 19 апреля 2009

Eclipse имеет экран Run Configurations с вкладкой Classpath.

У меня были некоторые jar-файлы, перечисленные в разделе «Записи пользователя» этой вкладки, но мой проект не запускался, пока я не продублировал эти jar-файлы в разделе «Начальные записи». После того, как банки были перечислены в обоих разделах, проект успешно завершился.

Почему?

В чем разница между этими двумя категориями настроек Classpath?

Ответы [ 3 ]

7 голосов
/ 20 апреля 2009

Разница в порядке их спецификации в загрузчиках классов.

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

Путь к классу пользователя - это записи, которые управляются загрузчиком классов приложения.

Любые записи в пути к классу начальной загрузки имеют приоритет перед пользовательским путем к классу.

Они инициализируются на основе проекта, содержащего приложение для запуска, но вы можете изменить их в конфигурации модуля запуска для приложения, которое вы хотите запустить в eclipse.

Относительно того, почему это не сработало: что это были за банки? Это были вещи, которые нужно было загрузить из классов времени выполнения (например, библиотеки замены XML-парсера?)

Подробнее см. http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.html.

- Скотт

3 голосов
/ 19 апреля 2009

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

2 голосов
/ 19 апреля 2009

Один из них предназначен для проверки источников / путей к классам в редакторе, другой - для среды выполнения.

Я думаю.

Какого черта, я все равно сегодня исчерпан.

...