2011-04-19 3 views
9

Как я могу сделать программу java installable?Как сделать программу Java установленной?

У меня есть приложение, сохраненное в рабочем пространстве Eclipse.

Я могу экспортировать его как файл .jar.

Это приложение для «реального мира».

Как я могу экспортировать файл «.exe» или «.dmg», чтобы его можно было установить на другой компьютер?

Поскольку Java не зависит от платформы, я думаю, что это вопрос экспорта для конкретной операционной системы.

Я много гулял и читал много разных историй, поэтому предпочел бы ответ от опытного человека.

+0

возможно дубликат [компиляция-а-Java-программа, в-ан-ех] (http://stackoverflow.com/questions/2011664/compiling-a-java-program-into-an- exe) – asgs

+0

Это на самом деле два вопроса в одном. Создание пусковой установки (.exe для Windows и .app для OSX), а затем создание установщика (.msi для Windows и .dmg для OSX). Вы проверяли, возможна ли отправка исполняемого JAR? – KDM

+0

Dup: http: //stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file – SjB

ответ

8

Я предполагаю, что вы ищете не только для того, чтобы сделать программу runnable (как предложено lobster1234), но и сделать ее фактически установленной. Недавно мы использовали IzPack. Это на самом деле выглядит красиво.

Есть также некоторые достойные учебники по деталям here и here

+1

+1 для IzPack. Он выглядит красиво и имеет приличную документацию. – KDM

4

Jar файлов, как правило, путь, так как виртуальная машина может непосредственно выполнять упакованные файлы с помощью команды java -jar <jarfile>. Java WebStart хорош, если вы хотите распространять свое приложение с веб-сайта и т. Д. Однако у некоторых ОС нет этой «функции», даже если есть JVM. Еще одно решение - иметь как минимум 3 скрипта для запуска вашего приложения (пакет для Windows, сценарий оболочки для Linux и все, что нужно Mac - извините, у вас нет Mac -).

Не создавать собственные исполняемые файлы (например, exe для Windows), они избыточны, поскольку для этого у вас уже есть JVM.

+0

JAR-файлы еще не имеют иконки под Windows. –

+0

Существует причина, по которой jar, распространяемый как EXE, является жизнеспособным вариантом, учитывая, что при использовании EXE-процесса вы можете надлежащим образом присоединить 'AppUserModelID' для правильного взаимодействия списков переходов в Windows 7, особенно при закреплении панели задач в сочетании с установщиком установки, который поддерживает ярлык Windows с свойством «AppUserModelID» – eee

+0

не означает, что Java может писать независимые от платформы приложения? Наличие файла .exe делает это бессмысленным; также может генерировать исполняемый файл для Linux и Mac в этом случае. Вы можете * иметь значок с пусковой установкой, в любой ОС. Этот аргумент не имеет большого веса. –

2

Я рискую здесь flamewar, но я играю :) Если вы не на платформе, где JRE уже существует, существует (например, OS X), это будет хлопот для вас и/или конечных пользователей. Проблема в том, что приложения Java просто не являются автономными и зависят от массивной структуры.

JRE, Java Web Start или все, что вы используете, должно быть помещено в целевую систему. Также у вас должна быть какая-то пусковая установка. Это может быть что-то простое, как скрипт, который запускает java, предоставляет путь к классам и т. Д. Это не понадобится, если java «скомпилирован» в .exe или что-то еще, но это именно то, как это работает.

Это одна из причин, по которой я отключил развертывание Java на компьютерах конечных пользователей. Это просто неприятности. Я когда-то работал над проектом, где мы фактически встроили весь частный jre, который был развернут установщиком. Это было некрасиво, но это было сделано.

0

Ребята уже дали вам много вариантов, поэтому я не хочу упоминать их снова. Единственный вариант, который здесь отсутствует, - это случай, когда вам действительно нужно установить вашу программу, что означает выполнение некоторой логики, изменение (или, по крайней мере, чтение) конфигурации системы, создание ярлыков на рабочем столе, копирование многих файлов, настройка сторонних продуктов (которые, вероятно, уже установлены) и т. д.

В этом случае вы можете использовать InstallAnywere, EzPack или аналогичные решения (см. http://java-source.net/open-source/installer-generators) Например, если ваш проект относительно прост, я рекомендую вам AntInstaller.

BTW, если вы боитесь, что у вашего клиента, вероятно, нет JRE, установленного на его машине, вы можете упаковать свой код (или лучше загрузчик) с помощью Launch4J, который генерирует исполняемый файл из вашего java-кода.

1

Начиная с Java 8, jdk теперь может создавать собственные Установки для Windows, OSX и Linux. Однако в Windows это зависит от Inno Setup 5 или более поздней версии или от WiX 3.0 или новее.

https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1324980

Самый простой способ для создания автономного приложения является модифицировать задачу развертывания. <fx:deploy width="${javafx.run.width}" height="${javafx.run.height}" nativeBundles="all" outdir="${basedir}/${dist.dir}" outfile="${application.title}"> <fx:application name="${application.title}" mainClass="${javafx.main.class}"/> <fx:resources> <fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/> </fx:resources> <fx:info title="${application.title}" vendor="${application.vendor}"/> </fx:deploy>

Смежные вопросы