Я никогда не видел, чтобы программное обеспечение было выпущено как jar, так как я могу сделать так, чтобы программное обеспечение было выпущено как exe? - PullRequest
4 голосов
/ 21 сентября 2009

Неужели все думают, что все остальные не выпускают программы как jar, а затем выпускают программы как exe тоже?

Ответы [ 5 ]

16 голосов
/ 21 сентября 2009

Программное обеспечение Java может быть выпущено несколькими способами в зависимости от целевого рынка.

Самый простой для разработчика (но самый сложный для конечного пользователя) - просто выпустить файл jar (или набор файлов Jar). Во многих системах JAR будет «двойным щелчком» и будет действовать как исполняемый файл. Но если у конечного пользователя не установлена ​​Java, она не будет работать.
Хорошо , если вы контролируете целевую среду. Также хорошо, если вы хотите использовать Windows, Mac и Linux одновременно. Его может запустить любая платформа с Java, включая платформы, которые вы не рассматривали.
Плохо , если вы нацелены на обычных пользователей. Он не может выполнять «установку задач», устанавливать что-либо в меню «Пуск» или связывать себя с типом файла.

Java Web Start - это мои предпочтения в большинстве случаев. Он предоставляет установщик на основе Java и может настроить меню «Пуск», связать типы файлов и все такое. Но не вызывает ли окно безопасности при установке.
Хорошо для большинства случаев. У вас есть только одна ссылка для всех ОС.
Плохо , если вы подозреваете, что у пользователя не установлена ​​JRE или вы не хотите, чтобы конечный пользователь знал, что приложение написано на Java.

Вы можете выпустить zip-файл с файлами Jars и .bat и .sh , чтобы начать работу.
Хорошо для администраторов, разработчиков и приложений командной строки.
Плохо для конечных пользователей, которые на самом деле не знают, что такое скрипт «летучая мышь» и «шелл», и не знают, что делать, если скрипт был сломан для их системы.

Тонкая .exe-оболочка вокруг файла Jar. Это создает у конечного пользователя впечатление, что приложение является нативным. Они обычно идут с ...

A Программа установки с поддержкой Java . Это собственный установщик (так что разные установщики для Windows, Mac и Linux). Это позволит определить, установлена ​​ли на целевом компьютере Java, и если не удастся запустить установку JRE. Он также сможет выполнять все забавные действия после установки, такие как установка сопоставлений файлов и добавление элементов в меню «Пуск».
Хорошо для большинства случаев.
Плохо , если вы нацеливаетесь на несколько платформ, так как вам потребуется поддерживать установщик для каждой платформы. Также плохо, если на одной из целевых платформ нет установщика, поддерживающего Java (вам потребуется использовать другие методы, описанные выше, для этой платформы).

Собственный EXE . Используя компилятор Java-to-native (Jet, GCJ или IKVM), вы создаете собственный исполняемый файл.
Хорошо , если вы действительно не хотите, чтобы люди знали, что вы используете Java, или вам нужно каким-то странным образом интегрироваться с собственной средой (ikvm позволит вам использовать свой код Java в .NET как просто .NET объект).
Плохо , поскольку люди думают, что это волшебным образом сделает приложение быстрее, когда оно не будет.

A jpm4j упаковка. JPM - менеджер пакетов для Java, такой как npm для nodejs. Это позволяет устанавливать программное обеспечение с помощью небольшого сценария командной строки, например, для установки jython вы можете использовать jpm install -f --name jython org.python:jython. Хорошо для инструментов разработчика. Плохо для конечных пользователей, так как оно основано на командной строке и требует от них первой установки jpm.

Редактировать: IKVM, jpm

5 голосов
/ 21 сентября 2009

Да. Если вы имеете дело с конечными пользователями, а не с программистами, хорошей идеей будет создание нативного решения для его платформы. Создайте dmg, exe и несколько пакетов linux. Для exe вещи, посмотрите на launch4j или jsmooth .

1 голос
/ 21 сентября 2009

Вы можете сделать это самостоятельно, написав короткую (C?) Программу, такую ​​как:

//run tests here
system("java -jar my_file.jar");

Но вам нужно будет создать версию этого исполняемого файла для каждой операционной системы.

1 голос
/ 21 сентября 2009

Другая альтернатива - install4j ,

мощный многоплатформенный установщик Java, который генерирует собственные установщики и средства запуска приложений для приложений Java.

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

0 голосов
/ 21 сентября 2009

Зависит от того, кто ваша аудитория. Если вы пишете приложения, предназначенные для установки профессиональными системными администраторами, я бы просто сделал jars. Если вы пишете для конечных пользователей без каких-либо технических знаний, двоичный файл, зависящий от системы, может быть правильным выбором.

При выборе jar-маршрута я бы подумал о создании двух дистрибутивов: один, включающий все библиотеки, от которых зависит приложение, и один без них.

Что касается двоичного файла: почему бы не предоставить тонкую оболочку в виде командного файла или сценария оболочки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...