Java, эквивалентный из C++ .dll?

Так, я программировал некоторое время теперь, но так как я не работал над многими большими, модульными проектами, я не столкнулся с этой проблемой прежде.

Я знаю то, что .dll находится в C++, и как они используются. Но каждый раз, когда я видел подобные вещи в Java, они всегда упаковывались с исходным кодом. Например, что я сделал бы, если бы я хотел дать библиотеку Java кому-то еще, но не выставить исходный код? Вместо источника я просто дал бы библиотеке, а также Javadoc или чему-то вдоль тех строк, с общедоступными методами/функциями, другому программисту, который мог затем реализовать их в их собственном коде Java.

Например, если я хотел создать синтаксический анализатор SAX, который мог бы быть "одолжен" другим программистом, но (по некоторым причинам - не может думать один в этом определенном примере lol), я не хочу выставлять свой источник. Возможно, существует вход в систему, включенный это, я не хочу использованный - я не знаю.

Но каков был бы Java способ сделать это? С C++, .dll файлы делают это намного легче, но я никогда не сталкивался с Java, эквивалентным до сих пор. (Я довольно плохо знаком с Java и довольно новым "реальным" программистом, в целом также),

10
задан Matt D 13 May 2010 в 22:19
поделиться

9 ответов

Библиотека Java .jar - это Java-эквивалент .dll, и в ней также есть "Jar hell", которая является версией Java "dll hell"

http: //en.wikipedia .org / wiki / JAR_ (file_format)

23
ответ дан 3 December 2019 в 14:24
поделиться

Java-аналогом DLL является файл .jar, который представляет собой zip-файл, содержащий набор файлов Java .class и (возможно) другие ресурсы. См. Документацию Sun, er, Oracle .

2
ответ дан 3 December 2019 в 14:24
поделиться

Наиболее распространенный способ упаковки кода Java - использовать файл «.jar». Файл .jar - это просто файл .zip.

Чтобы распространять только ваш скомпилированный код, вам нужно создать .jar, содержащий ваши файлы .class. Если вы хотите дополнительно распространять исходный код, вы можете включить файлы .java в отдельную область .jar.

Существует множество инструментов и руководств, объясняющих, как создать .jar.

0
ответ дан 3 December 2019 в 14:24
поделиться

Вам не нужно распространять исходный код. Вы можете распространять скомпилированные файлы .class , которые содержат нечитаемый человеком байт-код. Вы можете объединить их в файлы .jar , которые представляют собой просто zip-файлы и примерно соответствуют Java-эквивалентам собственных файлов .dll.

Обратите внимание, что файлы .class можно легко декомпилировать (хотя декомпиляторы не могут восстановить 100% информации из источников). Чтобы усложнить декомпиляцию, вы можете использовать обфускатор, чтобы сделать исходный текст менее разборчивым.

-1
ответ дан 3 December 2019 в 14:24
поделиться

Jar - это просто несжатый zip-архив ваших классов. Все классы легко декомпилируются и просматриваются. Если вы действительно не хотите делиться своим кодом, возможно, вы захотите обфускировать свой код.

4
ответ дан 3 December 2019 в 14:24
поделиться

Технически вы можете скомпилировать байт-код Java в собственный код и создать обычную DLL или разделяемую библиотеку с помощью компилятора Ahead-Of-Time .

Однако этой DLL потребуется среда выполнения Java, специфичная для компилятора AOT, а две среды выполнения Java могут не сосуществовать в одном процессе. Кроме того, нужно было бы использовать JNI , чтобы хоть как-то использовать эту DLL.

К сожалению, обфускация имеет слишком много недостатков ...

0
ответ дан 3 December 2019 в 14:24
поделиться

Google JAR-файлы.

Редактировать: Википедия подводит хороший итог: http://en.wikipedia.org/wiki/JAR_%28file_format%29

Разработчики программного обеспечения обычно используют файлы .jar для распространения Java-приложений или библиотек...

5
ответ дан 3 December 2019 в 14:24
поделиться

Простой девиз Java «Напиши один раз, беги куда угодно». создайте все свои java-классы в виде jar-файла, но есть вероятность, что все еще кто-то может увидеть код Java с помощью декомпиляторов. Чтобы кто-то действительно не смотрел на ваш код, запутайте jar, используя ссылку ниже.

Обфускация Java

1
ответ дан 3 December 2019 в 14:24
поделиться

Вы можете опубликовать коллекцию скомпилированных файлов *.class.

0
ответ дан 3 December 2019 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: