170 похожих чатов

Объсните мне, почему большинство java программ выпускаются в формате .exe

если файлы .jar также являются исполняемыми?

24 ответов

24 просмотра

большинство? сударь, мне кажется, вы заблуждаетесь

Оруэлл- Автор вопроса
Оруэлл
Если мы говорим про Виндовс то да

90-99% java программ выпускаются в jar, без разницы на виндовс, линукс, мак, потому что он работает через java virtual machine

Оруэлл
Если мы говорим про Виндовс то да

А jarник вообще можно без какого то яп, который компилируется напрямую в бинарник обернуть в exeшник?

Джавы бывают разные, и для корректного запуска нужно установить правильную версию jre. В exe jre зашит.

Etki
graalvm native image

Необязательно. Можно через jpackage собрать образ. Там просто будет виртуальная машина с нужными библиотеками и твоим кодом в одном архиве

Оруэлл- Автор вопроса
U
90-99% java программ выпускаются в jar, без разниц...

Кстати, а почему jar не работает в андроид?\

Оруэлл
Кстати, а почему jar не работает в андроид?\

У виртуальной машины андроида другой бинарный формат хранения кода.

Etki
эт не бинарник, это инсталлятор, нет?

Дам два тулкита, jlink и jpackage, первый как раз и собер бинарь.

Bohdan Panchenko
Дам два тулкита, jlink и jpackage, первый как раз...

jpackage тоже делает бинарь :) напрямую с jlink работать без модулей - так себе удовольствие

Etki
Ты его запускал?

да, через плагины. Но итоговое приложения на JavaFX я собрал уже через рантайм плагин

Bohdan Panchenko
да, через плагины. Но итоговое приложения на JavaF...

Смотри просто что он выплевывает: $ jlink --module-path . --output artifact --add-modules pg $ ls artifact bin conf include legal lib release Хм, может там всё запаковано в bin/java, а всё остальное это какие-то временные файлы? $ cp artifact/bin/java /tmp/launcher $ /tmp/launcher /tmp/launcher: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory Это что угодно, но не бинарь, ладно бы ему системной библиотеки не хватало Давайте пойдем дальше и грохнем файл lib/modules $ mv artifact/lib/modules{,.shadow} $ artifact/bin/java Error occurred during initialization of VM Failed setting boot class path Ребят, какой бинарник, вы о чем вообще? У него classpath снаружи валяется.

Etki
Смотри просто что он выплевывает: $ jlink --modul...

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

Etki
Смотри просто что он выплевывает: $ jlink --modul...

у вас плохое понимание что такое бинарь, бинарь это не значить что БЕЗ ВМ

Bohdan Panchenko
у вас плохое понимание что такое бинарь, бинарь эт...

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

Etki
Смотри просто что он выплевывает: $ jlink --modul...

хм, ну может exe делает имено jpackage я давно делал

Etki
Бинарник это значит исполняемый файл, который пере...

ПС получается 99.9999999% програм не бинарники, потому что собирать все в один файл - моветон. А иметь установщик, который распаковывает и делает красивый "ярлычок" - уже давно стандарт. И там один бинарь потом загружает кучу других бинарей/либ/файлов etc. Под бинарем я понимаю (в даном случае) что запуск идет не через скрипт, или jar/module а двой кликом по файлу бинарю-который уже дальше все запускает

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

Обсуждают сегодня

https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Ребят в СИ можно реализовать ООП?
Николай
33
Доброго вечера. Поскажите, как изменить код number_fomat, что цена была без копеек. <?php if(!empty($value)) { $parts = explode('.',$value); echo number_format ($part...
Katerina Beliayeva
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
core\config\database\connections\default.php На всякий случай проверь всё же файл <?php return [ 'driver' => env('DB_TYPE', 'mysql'), //$database_type 'host' => env('D...
Andrey K
2
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Карта сайта