2017-01-17 4 views
0

Я учусь о программировании GUI с Java, и я использую Netbeans IDE. Теперь я хотел бы создать исполняемую программу для запуска за пределами Netbeans; т. е. чтобы его можно было запускать с моего рабочего стола.Почему создание .exe из java-программы не рекомендуется?

Но когда я провел некоторое исследование, у меня сложилось впечатление, что создание .exe из программы Java не рекомендуется. Не могли бы вы объяснить мне, почему это не рекомендуется?

+3

_ «Но когда я делаю некоторые исследования, я пришел к выводу, что создание .exe из java-программы не рекомендуется», где вы нашли это точно? Я уверен, что они уже объясняют _ «почему» _ part there – Baby

+0

'создайте исполняемую программу без netbeans, как то, что мы помещаем на наш рабочий стол. 'что вы подразумеваете под этим? вы думаете, что netbeans работает как некоторая структура и не позволит вам использовать вашу программу Java без нее? Если вы хотите создать настольное приложение, вам нужно всего лишь скомпилировать вашу программу, а затем выполнить файл .jar. единственное преимущество файла .exe - уникальное имя процесса и значок дисплея –

+3

См. [Что лучше всего распространять приложения Java?] (http://stackoverflow.com/questions/80105/whats-the-best- way-to-distribute-java-applications) – Yousaf

ответ

5

не рекомендуется, потому что:

  • Стандартные цепи Java инструмент не поддерживают его.
  • exe не переносится. Различные форматы exe используются для разных операционных систем, аппаратных архитектур и т. Д.
  • Автономный exe для программы Java должен содержать полную JRE. (Вы хотите распространять исполняемые файлы 100Mb «hello world»?)
  • Java exe со встроенной JRE - проблема безопасности. Нет простого способа обновить JRE ... чтобы исправить последнюю партию дыр в безопасности.

Если (гипотетически) язык Java, библиотеки и поддерживаемая цепочка инструментов поддерживаются компиляцией в двоичную + ссылку, то распространение файлов exe было бы разумным решением. Однако многое из того, что может выполнять приложение Java, зависит от стандартной реализации компиляции стандартной загрузки Java/JIT.

Там были/есть третья сторона пытается удовлетворить потребности людей для автономных exe файлов, но ваш либо в конечном итоге с Java подмножестве или раздутые exe файлов.


1 - К примеру, со старым GNU gcj компилятором, библиотека была подмножество Java 2 ... и (AFAIK) динамической загрузки байткодов был не вариант (!). Для получения дополнительной информации о ограничениях gcj см. this page.

+1

В дополнение к тому, что заметил Стивен С, Java имеет набор средств развертывания, включающий распределение JAR, производные от JAR WAR и EAR, и Java Web Start. Они предоставляют переносные механизмы для развертывания и запуска программ Java без необходимости использования EXE. –

+0

@LewBloch - И есть и другие подходы. –