Так как мой опыт связан с Java Web Start, который предназначен для запуска настольных приложений. с графическим интерфейсом, пожалуйста, примите во внимание, что мой совет ориентирован в основном на эти типы приложений.
Другие люди прокомментировали специфический характер ОС для EXE. Мне всегда приходится задумываться, почему люди выбирают Java для разработки приложений для Windows, специфичных для Windows. Поскольку программное обеспечение Visual Studio для Windows, вероятно, будет заниматься как разработкой графического интерфейса пользователя (без макетов Java-приложений x-plat, чтобы сойти с ума), так и развертыванием (просто догадываясь, что это может сделать EXE) проще.
OTOH только вы можете сказать, что является лучшим инструментом / языком разработки для этого варианта использования.
Что касается потенциальных недостатков создания EXE, я отмечу на JavaFAQ на EXE .
Существует ряд веских причин не упаковывать ваше приложение в исполняемый файл. Даниэль Сьёблом отмечает:
- Вероятно, не будет быстрее. Современные виртуальные машины не интерпретируют байт-коды, они фактически используют JIT-компилятор для создания собственного скомпилированного кода. Посетите сайт Sun для получения дополнительной информации о JIT-компиляторах.
- Статическая компиляция увеличивает размер вашего приложения в несколько раз, поскольку все библиотеки, которые вы используете, должны быть связаны с приложением.
- Вы теряете «бесплатные» обновления вашей программы. Каждый раз, когда ваш пользователь загружает новую более быструю виртуальную машину, ваше приложение получает ускорение. Если вы используете exe, вы не получите это преимущество.
Джон А. Круз подробно описывает некоторые дополнительные шаги в процессе разработки, необходимые для создания исполняемого файла. Он указывает, что разработчики, делающие нативные exe-файлы, должны:
- Проверка последних версий продукта компиляции от поставщика. Если обнаружены критические ошибки, их нельзя использовать для создания продукта доставки, пока они не будут устранены. Работа, которую необходимо выполнять каждый раз, когда от поставщика выходит ревизия.
- Отправьте программное обеспечение через цикл QA. Как только инженерия думает, что все сделано, они должны быть проверены. Таким образом, каждая отгрузочная версия и обновление продукта должны проходить полный цикл тестирования.
- Кроме того, поскольку собственная компиляция выполняется для целевой платформы, цикл QA необходимо выполнить полностью для каждой целевой платформы, что умножает необходимые усилия.
- Стеллаж. Может быть, в настоящее время не имеет большого значения, но может быть.
- Тогда нужно, чтобы все клиенты обновились до нужной версии. Либо иметь бесплатные обновления (в этом случае бизнес должен покрывать расходы на производство обновлений), либо, в качестве альтернативы, необходимо обрабатывать клиенты, не все обновления.
Джон отмечает далее: когда вы отправляете стандартные Java-байт-коды, проблемы с ВМ являются ответственностью платформы или поставщика ВМ. Однако, когда вы отправляете скомпилированные двоичные файлы, они становятся вашей ответственностью (даже если они действительно являются ошибками в продукте компиляции поставщика).
...
Конечно, мой первый выбор для развертывания приложений Java-клиента. использует Java Web Start . Положим некоторые преимущества / возможности веб-старта в виде точек:
JWS предоставляет множество привлекательных функций, включая, но не ограничиваясь:
- заставки
- интеграция с рабочим столом
- ассоциации файлов
- автоматическое обновление (включая отложенные загрузки и программный контроль обновлений)
- разбиение нативных и других ресурсов для загрузки по платформе, архитектуре или версии Java,
- конфигурация среды выполнения (минимальная версия J2SE, параметры времени выполнения, ОЗУ и т. Д.)
- простое управление общими ресурсами с помощью расширений
..
Я решил выделить автообновление с постепенным переходом от приложений. доставлено на диск приложениям. автоматическое обновление становится все более распространенным. JWS по-прежнему обеспечивает лучший опыт обновления (очень настраиваемый, в основном прозрачный для пользователя), который я видел.
И, конечно же, JWS работает в ОС для настольных ПК, для которых доступна Java.
Обновление
.. требуется ли интернет-приложениям Java подключение к Интернету?
(Обратите внимание, что имя «Java Web Start».)
Конечно, это так.По крайней мере, для первоначальной установки.Можно указать проверки обновлений, чтобы продолжить запуск ранее установленной версии приложения.если пользователь в данный момент не подключен.
Но тогда (по моей оценке) больше машин (например, нетбуков) без привода CD / DVD, чем без подключений к Интернету. Если вы хотите продавать на более крупном рынке, обратитесь в сеть, чтобы доставить приложение.