How to add external library properly in Eclipse?
So today I downloaded Apache Commons Lang library (binary, zip format). I extracted it to C:\eclipse\commons-lang-2.5 folder. There are a commons-lang-2.5.jar , a commons-lang-2.5-javadoc.jar , and a commons-lang-2.5-sources.jar inside, and a folder for HTML Javadoc. I started Eclipse, added commons-lang-2.5.jar , and set its source and Javadoc respectively as the screenshot below. (http://img43.imageshack.us/img43/9378/eclipsev.png)

My question is, is there a convenient or standard way to add external libraries? Or am I actually doing the right thing?
Подключение библиотеки к проекту в Eclipse
Очень часто при создании приложения приходится пользоваться сторонними библиотеками при решении тех или иных задач. Но не все начинающие Android-разработчики умеют подключать их к своему проекту. В этой статье я расскажу, как подключаются библиотеки и какие при этом возникают ошибки. В качестве IDE будет использоваться Eclipse.
Разберем 3 случая:
1) Подключение jar.
2) Подключение проекта с исходниками.
3) Что делать если пункт 2 не сработал.
Случай первый: библиотека поставляется в jar файле.
Это самый легкий вариант подключения библиотеки. На сегодняшний день не очень распространен и, скорее всего, будет терять популярность. Одной из причин является невозможность запаковки ресурсов всесте с библиотекой. Не так давно появился новый формат библиотек — aar. Это тот же jar-файл, толь с ресурсами. Работать с ним мне еще не приходилось, поэтому ничего больше сказать не могу.
Тут тоже есть два способа подключения jar-библиотеки к проекту.
1 способ
1) Раскройте дерево проекта в Package Explorer
2) Перетащите в папку libs ваш jar-файл (если папки libs нет, то создайте ее)
3) В открывшемся окне выберите пункт Copy files и нажмите OK
3) Нажмите правой кнопкой мыши на вашем проекте и выберите пункт Refresh
4) Готово
2 способ
1) Нажмите правой кнопкой мыши на вашем проекте и выберите пункт Properties
2) В открывшемся окне слева есть меню, выберите в нем пункт Java Build Path
3) Выберите вкладку Libraries
4) Нажмите на кнопку Add External JARs…
5) В открывшемся окне выберите файлс вашей библиотекой и нажмите OK
6) Jar-файл добавлен. Нажмите кнопку OK
7) Готово
Случай второй: библиотека поставляется в виде проекта
1) Откройте File > Import, выбираем Android > Existing Android Code into Workspace
2) Нажмите кнопку Browse
3) В открывшемся окне найдите папку с библиотекой, нажмите OK
4) Поставьте галку на пункте Copy projects into workspace
5) Нажмите Finish.
6) Нажмите правой кнопкой мыши на вашем проекте и выберите пункт Properties
8) В открывшемся окне слева есть меню, выберите в нем пункт Android
8) Нажмите на кнопку Add
9) В открывшемся окне выберите вашу библиотеку и нажмите OK
Третий случай: при импортировании библиотеки Eclipse выдает ошибку
Если при импортировании библиотеки в workspase Eclipse выдает ошибку типа … или какую-нибудь еще, то выполняем следующие действия:
Русские Блоги
Играя java-апплеты дома во время зимних каникул, я хочу добавить фоновую музыку, но, глядя на исходный код других, мне нужно импортировать сторонний jar-пакет. Baidu знает, что он слишком громоздкий, и нашел три метода импорта, написанных программой. ,
1. Наиболее часто используемый метод работы: основной тип шага
Щелкните правой кнопкой мыши «Проект» → выберите «Свойства», выберите «Путь сборки Java» в списке слева от всплывающего диалогового окна, как показано на следующем рисунке: Выберите «Добавить внешние JAR-файлы», вы можете выбрать один за другим (вы также можете выбрать Несколько jar-файлов, но ограничены одной и той же папкой.) Добавьте сторонние справочные jar-пакеты.

Вышеуказанная операция является универсальной, но каждый раз, когда создается проект, необходимо повторно вводить пакет Jar. Пакет Jar не подлежит повторному использованию.
2. Метод работы с быстрой версией: пакет Jar пользователя
Щелкните правой кнопкой мыши «Project» → выберите «Properties», выберите «Java Build Path» в списке слева от всплывающего диалогового окна, появится диалоговое окно, показанное выше, выберите «Add Library» здесь, появится диалоговое окно, показанное ниже, выберите «User» Библиотека ", затем выберите → Далее

В открывшемся диалоговом окне вы можете выбрать созданную пользователем библиотеку или выбрать Пользовательские библиотеки.В появившемся новом диалоговом окне выберите «Создать», чтобы создать новую пользовательскую библиотеку.

В определяемой пользователем библиотеке введите имя новой настраиваемой библиотеки, как показано ниже

Затем для новой библиотеки добавьте необходимые пакеты Jar

После добавления пользовательских библиотек в соответствии с вышеуказанными шагами вы можете использовать эти библиотеки пользовательских библиотек в будущем, что экономит время на разработку.
3. Метод работы с быстрой версией: импорт папки
В проекте создайте новую папку (например, ibatis_jar), как показано на следующем рисунке, в этом примере создается папка ibatis_jar, а сторонний пакет jar, необходимый для разработки проекта, копируется в эту папку.

Выберите пакет jar, который необходимо добавить в проект, щелкните правой кнопкой мыши и выберите «Build Path», а затем «Add to Build Path», чтобы пакет Jar был успешно импортирован в проект. 
Третий способ импорта пакетов Jar проще и более пригоден для повторного использования, чем второй: когда мы найдем необходимые пакеты Jar на разных компьютерах, просто скопируйте эти папки напрямую.
Временно обладая этим поверхностным пониманием пакета jar для импорта Eclipse, по мере накопления опыта разница между различными способами внедрения пакета jar Eclipse будет понята глубже!
Java. Пакеты. Использование пакетов в Java. Директивы import и package. Компилированные модули (*.java). Промежуточные .class файлы. Структура проекта. Использование стандартных библиотек Java
Пакеты. Использование пакетов в Java. Директивы import и package . Компилированные модули ( *.java ). Промежуточные .class файлы. Структура проекта. Использование стандартных библиотек Java
Содержание
- 1. Пакеты в Java
- 2. Как подключить пакет к существующему проекту в Java Eclipse? Структура проекта, который содержит пакеты
- 3. Какая общая форма вызова класса из пакета? Пример
- 4. Пример, который демонстрирует использование одного имени класса в разных пакетах и в разных каталогах (папках)
- 5. Какое назначение директивы import ? Общая форма. Пример
- 6. Как в директиве import указать, что могут быть использованы все классы из данного пакета?
- 7. Что собой представляет ключевое слово package ?
- 8. Что такое компилированный модуль в Java?
- 9. Какие требования к реализации компилированного модуля ( .java )?
- 10. Сколько классов могут быть реализованы в компилированном модуле?
- 11. Какое назначение файлов с расширением .class ?
- 12. Какие преимущества дает использование ключевых слов package и import ?
- 13. Пример, который демонстрирует структуру проекта и размещение компилированных модулей
- 14. Пример подключения класса из стандартной библиотеки Java
Поиск на других ресурсах:
1. Пакеты в Java
Каждый проект на языке Java в своей работе использует так называемые пакеты. Пакет – это отдельный модуль (пространство имен), которому соответствует одноименный каталог (папка). Пакет содержит библиотеки (группы) классов. Эти классы объединены между собой в одном пространстве имен или пакете. Количество реализованных классов в пакете неограничено. Классы, которые объявляются в пакете, реализуются в файлах с расширением *.java .
Пакеты могут иметь разнообразные уровни вложения (подкаталоги, подпапки). На разных уровнях вложения пакетов имена могут повторяться. Сохранение пакетов и файлов *.java в проекте осуществляется в виде древовидной структуры файловой системы.
2. Как подключить пакет к существующему проекту в Java Eclipse? Структура проекта, который содержит пакеты
В системе Java Eclipse подключение пакета есть стандартной командой. Предварительно может быть создан проект. В проекте может размещаться произвольное количество пакетов. В каждом пакете может быть произвольное количество классов.
Для создания пакета в некотором проекте используется команда
В результате откроется окно, изображенное на рисунке 1. В окне указывается имя проекта и пакета, который будет размещаться в этом проекте.

Рис. 1. Окно «New Java Package» . Создание пакета с именем MyPackage в проекте MyProject03
После выбора кнопки Finish происходит следующее. Проекту с именем MyProject03 соответствует специальная папка (каталог) с таким же именем. В этом каталоге создается несколько подкаталогов (подпапок). Один из них подкаталог с именем src. В этом подкаталоге создается каталог MyPackage , соответствующий создаваемому пакету.
3. Какая общая форма вызова класса из пакета? Пример
Чтобы обратиться к имени класса из пакета используется следующая общая форма:
- PackageName – имя пакета, в котором реализован класс с именем ClassName ;
- ClassName – имя класса.
Если пакет PackageName1 содержит подпапку (подпакет) с именем PackageName2 , то доступ к классу с именем ClassName имеет вид:
Подобным образом формируется доступ к классу в случае более более сложных уровней вложения.
Например. Пусть задан пакет с именем Figures . В пакете реализованы два класса с именами Circle и Rectangle . Тогда, фрагмент кода, который создает объекты этих классов будет следующий:
4. Пример, который демонстрирует использование одного имени класса в разных пакетах и в разных каталогах (папках)
На рисунке 2 изображена иерархия, которую могут образовывать пакеты.

Рис. 2. В проекте MyProject03 три пакета с именами MyPackage01 , MyPackage02 , MyPackage02.MyFolder02
Как видно из рисунка, в проекте MyProject03 созданы 3 пакета с именами MyPackage01 , MyPackage02 , MyPackage03 . Каждый из пакетов имеет класс с одинаковым именем MyClass01 . Таким образом происходит разделение одинаковых имен.
Ниже приведен демонстрационный код, создающий объекты классов MyClass01 , которые размещены в разных пакетах (папках), согласно схеме из рисунка 2.
Как видно из программного кода, доступ к классу из пакета осуществляется с помощью разделителя ‘ . ‘ (точка). С целью сокращения весьма больших строк доступа к имени класса, используется директива import .
5. Какое назначение директивы import ? Общая форма. Пример
Директива import позволяет сократить весьма длинные строки обращений к классам (интерфейсам, перечислениям), которые реализованы в пакетах.
В простейшем случае общая форма директивы import следующая:
- PackageName – имя пакета, который подключается;
- ClassFileName – имя файла с расширением *.java , в котором реализован класс или группа классов, к которому нужно обращаться по сокращенному имени.
Например. Пусть в некотором проекте задан пакет Figures. В пакете Figures реализован один класс с именем Circle . Класс размещен в файле «Circle.java» . Исходный код файла Circle.java , который реализует класс Circle, имеет вид:
Чтобы из любого другого класса, который размещается в другом пакете данного проекта, иметь доступ к методам файла Circle.java из пакета Figures нужно в начале указать:
Ниже приводится пример подключения и использования класса Circle из другого пакета и другого класса.
Если в пакете OtherPackage убрать строку
то объект класса Circle нужно было бы создавать следующим образом
6. Как в директиве import указать, что могут быть использованы все классы из данного пакета?
Бывают случаи, когда в пакете реализованы несколько классов (файлов с расширениями *.java ) и возникает необходимость подключения всего множества классов. В этом случае общая форма директивы import может быть следующая:
- Package – имя пакета с библиотекой подключаемых классов.
7. Что собой представляет ключевое слово package ?
Ключевое слово package задает имя библиотеки, в которую могут входить разное количество компилированных модулей. Компилированные модули – это файлы с расширением .java .
Если в модуле (файле с расширением .java ) указывается строка наподобие
то это означает, что данный модуль есть частью библиотеки с именем PackageName .
8. Что такое компилированный модуль в Java?
Каждый компилированный модуль – это файл, который содержит исходный код на языке Java. Этот файл имеет расширение «*.java» . Имя файла совпадает с именем открытого ( public ) класса, который реализован в этом модуле. Это требование есть обязательным.
Каждый компилированный модуль может содержать не большее одного открытого класса. Компилированный модуль входит в состав пакета. В пакете может быть любое количество компилированных модулей.
9. Какие требования к реализации компилированного модуля ( .java )?
К реализации компилированного модуля предъявляются следующие требования:
- имя компилированного модуля должно иметь расширение .java ;
- имя компилированного модуля без учета расширения .java должно совпадать с именем открытого ( public ) класса, который реализован в этом модуле;
- имя компилированного модуля и имя реализованного в нем открытого класса должны начинаться из большой буквы;
- в компилированном модуле может быть не более одного открытого ( public ) класса. Если в компилированном модуле есть еще другие (вспомогательные) классы, то они должны быть скрытыми (без модификатора public ).
10. Сколько классов могут быть реализованы в компилированном модуле?
Компилированный модуль может иметь любое количество классов. Однако, открытым ( public ) должен быть только один класс. Имя этого класса должно совпадать с именем компилированного модуля.
11. Какое назначение файлов с расширением .class ?
Файлы с расширением .class получаются в результате компиляции файлов с расширением .java (компилированных модулей). Файлы с расширением .class есть промежуточными файлами, которые затем объединяются компоновщиком в исполнительный модуль.
Например, в языке программирования Delphi временные скомпилированные файлы имели расширение *.dcu . В языке программирования C++ временные скомпилированные файлы имели расширение .obj . После компоновки из этих файлов получался *.exe файл (исполняемый модуль).
После этого, файлы с расширением .class объединяются в пакет и сжимаются утилитой JAR . Это все осуществляет интерпретатор Java.
12. Какие преимущества дает использование ключевых слов package и import ?
Использование ключевых слов package и import позволяет удобно поделить пространство имен таким образом, чтобы предотвратить возникновению конфликтов между разными разработчиками классов на Java.
13. Пример, который демонстрирует структуру проекта и размещение компилированных модулей
Пусть в Java Eclipse создан проект с именем Project03 . Проект размещается в папке по умолчанию, которая используется системой Java Eclipse. В проекте созданы 2 пакета с именами Figures , OtherPackage . В пакетах реализованы по одному компилированному модулю соответственно с именами Circle.java и MyClass.java . Рисунок 3 отображает структуру проекта Project03 системы Java Eclipse.

Рис. 3. Отображение структуры проекта Project03 в окне Package Explorer
В файле (модуле) Circle.java разработан класс Circle . В файле MyClass.java разработан класс MyClass . В классе MyClass из пакета OtherPackage (см. рис. 3) подключается модуль Circle.java с помощью директивы
Если компилятор встречает директиву import , он формирует полное имя с учетом пути к каталогу, который записан по умолчанию в системе.
таким образом, получается полное имя модуля Circle.java :
По желанию путь к каталогу (папке) по умолчанию можно изменить.
14. Пример подключения класса из стандартной библиотеки Java
Чтобы обратиться к имени класса из стандартной библиотеки Java используется один из двух способов:
- Использование полной формы или полного имени класса в библиотеке.
- Использование сокращенной формы имени класса. В этом случае, полное имя пакета с нужным классом, может быть задано явным образом с помощью директивы import .
Полная форма обращения к имени нужного класса в простейшем случае выглядит так
- PackageName – имя пакета или стандартной библиотеки Java (например, util, math, applet и прочее). Пакеты или библиотеки могут иметь уровни вложения. Если библиотеки содержат вложения, то они разделяются символом ‘ . ‘ ;
- ClassName – имя класса (или интерфейса), который реализован в библиотеке PackageName (например ArrayList , BigDecimal и т.п.).
Например. Фрагмент кода, который использует класс Vector из стандартной библиотеки Java. В данном случае стандартная библиотека Java носит имя java.util .
В вышеприведенном коде происходит обращение к классу Vector по полному имени: