Файл Java JAR похож на сборку .Net? - PullRequest
12 голосов
/ 16 сентября 2010

Я знаком с .Net и его сборками, но, к сожалению, мои знания Java не так сильны.

Я знаю, что Java и .Net - это разные "миры" (возможно, как сравнение яблок с грушами)) но являются ли JAR-файлы и .Net-сборки примерно эквивалентными понятиями?

Редактировать: Обновить базу на основе первоначальных ответов

Я понимаю, что да, они имеют сходство:

  • Оба могут содержать ресурсы и метаданные.

Но есть некоторые основные различия:

  • .Net сборка скомпилирована, JAR не.
  • Файлы JAR не требуются для создания приложения Java;Сборки .Net требуются для приложения .Net.

[Это не время для религиозной войны - я хотел бы знать, насколько / насколько я понимаюсборок .Net, которые я могу применить, чтобы разобраться в Java (и, возможно, это даже поможет людям Java пойти другим путем).]

Ответы [ 3 ]

8 голосов
/ 16 сентября 2010

Существует множество технических отличий, но в большинстве случаев они не имеют большого значения, поэтому, в основном, ДА, это одно и то же понятие.

5 голосов
/ 16 сентября 2010

Я бы сказал, нет, это не одно и то же понятие, отметив, что JAR может использоваться как сборка.Если вы действительно хотите обдумать JAR-файл, просто подумайте об этом как о ZIP-файле.Вот и все.

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

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

Однако формат JAR является наиболее распространенным способом упаковки дистрибутива для библиотеки Java или приложения, поэтомуони очень похожи.

С точки зрения языка, файлы JAR никоим образом не требуются для создания приложения или библиотеки Java, и я бы не сказал, что они присущи Java, однако и для стандартной библиотеки, и для JDKимеет поддержку для работы с файлами JAR.

4 голосов
/ 16 сентября 2010

На одном уровне они концептуально похожи (кусок байтового кода в пакете).Однако их реализация сильно отличается.

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

Сборка .NET на самом деле является действительным файлом Win32 PE и может в некоторой степени рассматриваться как таковая.Файл .NET .exe фактически начинает выполняться как собственный код, который загружает платформу, которая затем загружает байт-код.«Выполнение» файла JAR требует запуска среды выполнения Java через файл .bat или ассоциации файлов, которая затем загружает файл JAR отдельно.

...