В чем разница между JAR и пакетами? - PullRequest
6 голосов
/ 28 февраля 2011

Есть ли разница между файлом JAR и пакетом?

Ответы [ 4 ]

14 голосов
/ 28 февраля 2011

Пакет - это способ логически организовать ваши занятия. Например, вы можете объявить package com.foo; в верхней части каждого исходного файла, которые достаточно связаны, чтобы находиться в пакете com.foo вместе. Компилятор Java и среда выполнения также ожидают, что вы поместите такие файлы в путь com/foo/, где корнем этого пути является каталог или JAR в вашем пути к классам.

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

Существуют и другие особые характеристики файлов JAR. Например, вы можете указать значение Main-Class в манифесте JAR, чтобы указать, какой класс является точкой входа для приложения, и вы можете печать пакетов в файле JAR ", Это означает, что все классы, определенные в этом пакете, должны быть заархивированы в одном и том же файле JAR. "

4 голосов
/ 28 февраля 2011

Пакет - это механизм в Java для организации классов в пространства имен.Jar - это Java ARchive, файл, который объединяет несколько классов Java в один.

2 голосов
/ 28 февраля 2011

Короче говоря, JAR-файл - это физический файл, структурированный во многом как zip-файл, который содержит файлы, используемые вашей программой во время выполнения.Jar обычно включает в себя файлы .class, исполняемые версии ваших классов и другие ресурсы, такие как значки, изображения, файлы свойств для конкретного языка и т. Д. В руководстве по Java описываются jar и способы их создания и управления ими.(http://java.sun.com/docs/books/tutorial/jar/index.html)

Пакеты определены следующим образом в руководстве по Java Tutorial, посвященном интерфейсам и пакетам: «Коллекция связанных классов и интерфейсов, обеспечивающих защиту доступа и управление пространством имен.» (http://java.sun.com/docs/books/tutor...va/interpack/). Несмотря на точность, я не нахожучто само по себе это определение действительно дает вам хорошее представление о том, что такое пакет. Для получения дополнительной информации перейдите на указанную страницу и прочитайте этот раздел руководства.

0 голосов
/ 28 февраля 2011

В classpath jar и package (directory) есть одинаковые структуры. Просто используйте jar для перемещения между компьютерами, а не для каталогов.

...