Подтвердить что ты не робот

Разница между файлами .jar и .dll

Я изучаю Java в эти дни, и я провел много времени с .NET, поэтому, когда я хочу экспортировать или импортировать библиотеки, они обычно находятся в формате .dll, который называется сборкой в ​​среде .Net, и они скомпилированные в IL, и они могут иметь ресурсы, такие как изображения, xml, audio и son, любым способом.

Мне тоже интересно, как и на Java. Я читал документы, но они на самом деле меня немного смутили, и чтобы прояснить ситуацию, мне нужны твои помощники.

Вопросы:

  • .NET Assembly - это то же самое, что и java.jar?
  • .dll содержит скомпилированный код IL, а .jar содержит файлы с кодом .class/byte.
  • Говорят ресурсы, какие ресурсы мы говорим здесь? Изображения,.txt файлы и т.д. Или все они возможны?

  • Я изучил AWS (API веб-сервиса Amazon для java), и я увидел три файла .jar, и они

    • AWS-ява-СДК-1.1.1.jar
    • AWS-ява-СДК-1.1.1-javadoc.jar
    • AWS-ява-СДК-1.1.1-sources.jar

и содержат файлы .class - java-документацию в формате html и .java файлы, которые до сих пор не скомпилированы. Итак, я понял, что .jar не просто включает скомпилированные байтовые коды (.class), а также другие вещи.

  • Когда я хочу импортировать java-библиотеки, мне всегда нужно будет импортировать файлы .jar?
  • Когда я хочу экспортировать свои собственные java-библиотеки, мне нужно экспортировать в .jar файл.

Спасибо за помощь заранее.

4b9b3361

Ответ 1

Является ли сборка .NET такой же, как java.jar?

Они играют ту же роль, да.

.dll содержит скомпилированный IL-код, а .jar содержит файлы с кодом .class/byte

Да. Хотя JAR - это только zip файлы (вы можете открыть их в своем любимом Zip-инструменте), поэтому они могут действительно содержать что угодно.

Говорят, ресурсы, какие ресурсы мы здесь говорим? Изображения, файлы .txt и т.д. Или все они возможны?

В JAR разрешен любой тип файла. Ваш Java-код может получить доступ к содержимому файлов в банке, например, getResourceAsStream или getResource. Очевидно, что файлы класса в JAR обрабатываются специально (в качестве байт-кода).

Я изучил AWS (API веб-сервиса Amazon для java), и я увидел три файла .jar, и они: aws-java-sdk-1.1.1.jar, aws-java-sdk-1.1. 1-javadoc.jar, aws-java-sdk-1.1.1-sources.jar

Вышеуказанная упаковка довольно распространена. Иногда люди используют .jar как альтернативное расширение файла .zip. Я нахожу эту практику запутанной, но это не редкость, и Амазонка сделала это в этом случае. Я думаю, что эта практика стала более распространенной с запуском Maven, который хранит исходный код в файлах с именем .jar.

aws-java-sdk-1.1.1.jar - это единственный файл, необходимый для компиляции и выполнения. Он содержит классы (файлы .class) и ресурсы, необходимые для работы библиотеки.

aws-java-sdk-1.1.1-sources.jar - это всего лишь zip файл, содержащий исходный код (.java файлы) для библиотеки. Это не обязательно для компиляции или исполнения. Он предоставляется, чтобы помочь вам устранить проблемы, с которыми вы можете столкнуться при использовании библиотеки. Вы можете разархивировать этот файл и прочитать исходный код с жесткого диска. Тем не менее, ваша IDE, вероятно, может использовать этот файл напрямую, создав "исходное вложение" в JAR основной библиотеки. Благодаря этой библиотеке- > исходной ассоциации, настроенной в вашей среде IDE, ваша IDE сможет показать вам исходный код библиотеки, когда вы используете функцию IDE "Перейти к определению" в классе библиотеки.

aws-java-sdk-1.1.1-javadoc.jar - это всего лишь zip файл, содержащий JavaDoc для библиотеки. Опять же, это не обязательно для компиляции или исполнения. JavaDoc - это просто HTML, поэтому вы можете разархивировать этот файл и прочитать JavaDoc HTML прямо с вашего жесткого диска. Тем не менее, большинство IDE могут создать "вложение javadoc" в основную библиотеку, что позволяет вытаскивать контекстно-зависимый JavaDoc для библиотеки из среды IDE. Фактически, большинство IDE могут генерировать JavaDoc "на лету" из -sources.jar, поэтому я редко использую javadoc jars больше.

Когда я хочу импортировать java-библиотеки, мне всегда нужно будет импортировать файлы .jar?

Обычно он называется "добавление JAR в путь к классам", но да. Вы почти всегда должны помогать Java находить все JAR, которые вы используете, создавая путь к классам всякий раз, когда вы создаете или выполняете. В общем, использование JAR и classpaths - гораздо более ручной и явный процесс, чем использование DLL в .NET. Например: Java не имеет прямого эквивалента .NET глобального кэша сборок; также vanilla Java не будет автоматически загружать .jars из рабочего каталога.

Существует несколько других методов создания более "автоматического" класса классов чувств, но они являются довольно продвинутыми: например, возможны пути класса Manifest.MF, но этот подход используется нечасто, так как он хрупкий. Начиная с Java 6, Java имеет ограниченную поддержку для использования подстановочных знаков в пути к классам.

Когда я хочу экспортировать свои собственные java-библиотеки, мне нужно экспортировать в .jar файл

Это стандарт, да.

Ответ 2

Я могу ответить на часть этого вопроса: -)

Как я понимаю, jar - это просто файл "Архив Java". Он может содержать все, что вы хотите, но чаще всего используется для распространения двоичных версий библиотек. Его также можно использовать для распространения исполняемых файлов. Двойной щелчок по файлу JAR запустит приложение, если оно будет упаковано.

Таким образом, может быть трудно определить, для чего предназначен конкретный файл jar. Например, что такое aws-java-sdk-1.1.1-sources.jar?. Это самоинсталлятор? Сжатый архив кода? Без чтения документации, это все догадываются.


Изменить:, я только что загрузил файл JAI jar, предположив, что это был бинарная сборка библиотеки. Но на самом деле он содержит приложение-установщик.

Ответ 3

Чтобы ответить на этот конкретный вопрос.

  • AWS-ява-СДК-1.1.1.jar
  • AWS-ява-СДК-1.1.1-javadoc.jar
  • AWS-ява-СДК-1.1.1-sources.jar

1) является архивом java файла компилятора jar, который в .NET называется DLL. 2) является javadoc. HTML-документация классов Java (найденная в 1)) вместе с описанием метода. 3) является исходным кодом (java файлы) 1).

  • Когда я хочу импортировать java-библиотеки, мне всегда нужно будет импортировать .jar файлы?
  • Когда я хочу экспортировать свои собственные java-библиотеки, мне нужно экспортировать файл .jar.

Для 1) Если вам нужно использовать класс, найденный в файле jar, вам нужно будет импортировать эту банку в свой проект.

Для 2) Вам не нужно. Вы можете связать свои банки с зависимостями в своей библиотеке или пакете каждый в свои собственные банки и импортировать их в свой проект.

  • .NET Assembly - это то же самое, что и java.jar? Ответ: Да.
  • .dll содержит скомпилированный код IL, а .jar содержит файлы с кодом .class/byte. Ответ:.jar файлы - это архивированный файл java-ресурсов, классов, образов/значков и т.д. что необходимо для приложения, как и в .DLL. Файлы классов содержат компиляцию исходных кодов java (Called java bytecode).