Как я могу преобразовать мою программу Java в файл .exe? [закрыто]

Аспект применяется к прокси , окружающему компонент. Обратите внимание, что каждый раз, когда вы получаете ссылку на bean-компонент, на самом деле это не класс, на который ссылается ваша конфигурация, а синтетический класс, реализующий соответствующие интерфейсы, делегируя фактический класс и добавляя функциональность, например, ваш AOP.

В приведенном выше примере вы вызываете непосредственно в классе, тогда как если этот экземпляр класса вводится в другой как компонент Spring, он вводится как его прокси-сервер, и, следовательно, вызовы методов будут вызваны на прокси (и аспекты будут активированы)

Если вы хотите достичь вышеизложенного, вы можете разделить method1 / method2 на отдельные компоненты или использовать структуру AOP, не ориентированную на весы.

Подробное описание Spring doc и несколько обходных решений (включая мое первое предложение выше)

484
задан xskxzr 29 April 2018 в 06:16
поделиться

8 ответов

javapackager

компиляции инструмента Java Packager, пакеты, и готовит Java и приложения JavaFX для распределения. Команда javapackager является версией командной строки.

†“документация Oracle

javapackager утилита поставлется с JDK. Это может генерировать .exe файлы с эти -native exe флаг среди многих других вещей.

WinRun4J

WinRun4j является средством запуска Java для окон. Это - альтернатива javaw.exe и предоставляет следующие преимущества:

  • Использование файл INI для определения пути к классу, основного класса, vm args, программа args.
  • Пользовательское исполняемое имя, которое появляется в диспетчере задач.
  • Дополнительная JVM args для более гибкого использования памяти.
  • Встроенный заменитель значка для пользовательского значка.
  • [больше пунктов маркированного списка следует]

†“веб-страница WinRun4J

, WinRun4J является утилитой с открытым исходным кодом. Это имеет многие функции.

пакеты packr

Ваш JAR, активы и JVM для распределения в Windows, Linux и Mac OS X, добавляя собственный исполняемый файл, чтобы заставить его появиться как исходное приложение. Packr наиболее подходит для приложений GUI.

†“packr README

packr является другим инструментом с открытым исходным кодом.

JSmooth

JSmooth является Исполнимой Оберткой Java. Это создает собственные средства запуска Windows (стандарт .exe) для Ваших JAVA-приложений. Это делает развертывание Java намного более гладким и удобным для пользователя, поскольку это в состоянии найти любой установленный Java VM отдельно.

†“веб-сайт JSMOOTH

JSmooth является открытым исходным кодом и имеет функции, но это очень старо. Последний выпуск был в 2007.

JexePack

JexePack является инструментом командной строки (большой для автоматизированных сценариев), который позволяет, Вы для упаковки JAVA-приложения (файлы класса), дополнительно наряду с его ресурсами (как GIF/JPG/TXT/etc), в сингл сжались 32-разрядный Windows EXE, который выполняет среду выполнения Java Sun использования. И консоль и оконные приложения поддерживаются.

†“веб-сайт JexePack

JexePack является пробным программным обеспечением. Оплата требуется для производственного использования, и EXE-файлы, созданные с этим инструментом, отобразят "напоминания" без оплаты. Кроме того, последний выпуск был в 2013.

InstallAnywhere

InstallAnywhere облегчает для разработчиков создавать профессиональное программное обеспечение установки для любой платформы. С InstallAnywhere you’ll адаптируются к промышленным изменениям быстро, доберитесь, чтобы продать быстрее и обеспечить привлекательное качество обслуживания клиентов. И знайте уязвимость своих project’s компонентов OSS перед поставкой.

†“веб-сайт InstallAnywhere

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

Исполняемые файлы JAR

Как альтернатива .exe файлам, можно создать файл JAR, который автоматически работает, когда дважды щелкнули, добавление точки входа к декларации .

JAR <час>

Для получения дополнительной информации

, превосходный источник информации об этой теме является статьей Excelsior" , Преобразовывают Java в EXE †“Да ведь Когда, Если не и Как ".

См. также сопутствующую статью" Лучший JAR к Инструментам Преобразования EXE, Свободным и Коммерческим ".

315
ответ дан MultiplyByZer0 29 April 2018 в 06:16
поделиться

Launch4j

Launch4j является межплатформенным инструментом для обертывания JAVA-приложений, распределенных как банки в легких собственных исполняемых файлах Windows. Исполняемый файл может быть настроен, чтобы искать определенную версию JRE или использовать связанную, и возможно установить опции во время выполнения, как начальный/макс. размер "кучи". Обертка также обеспечивает лучший пользовательский опыт через значок приложения, собственный pre-JRE экран-заставку, пользовательское имя процесса и страницу загрузки Java в случае, если соответствующий JRE не может быть найден.

†“веб-сайт Launch4j

109
ответ дан MultiplyByZer0 29 April 2018 в 06:16
поделиться

ОБНОВЛЕНИЕ: GCJ мертв. Это было , официально удалил из проекта GCC в 2016. Даже перед этим, от этого практически отказались в течение семи лет, и в любом случае это никогда не не было достаточно завершено для служения в качестве жизнеспособной альтернативной реализации Java.

Идут, находят другой Java компилятором AOT.

GCJ: Компилятор GNU для Java может скомпилировать исходный код Java в собственный машинный код, включая исполняемые файлы Windows.

, Хотя не все в Java поддерживается под GCJ, особенно компоненты графического интерфейса пользователя (см. , Какой API Java поддерживается? Насколько завершенный поддержка? вопрос от FAQ). Я не использовал GCJ очень, но от ограниченного тестирования я сделал с консольными приложениями, это кажется прекрасным.

Одна оборотная сторона использования GCJ для создания автономного исполняемого файла - то, что размер получающегося EXE может быть довольно большим. Одно время я скомпилировал тривиальное консольное приложение в GCJ и результате, было исполняемым файлом приблизительно 1 МБ. (Могут быть пути вокруг этого, что я не знаю. Другая опция была бы исполняемыми программами сжатия.)

С точки зрения установщиков с открытым исходным кодом, Система Установки Nullsoft Scriptable является scriptable установщиком. Если Вам любопытно, существует , пользователь внес примеры о том, как обнаружить присутствие JRE и установить его автоматически, если необходимый JRE не установлен. (Только для сообщения я не использовал NSIS прежде.)

для получения дополнительной информации об использовании NSIS для установки JAVA-приложений, смотрите на мой ответ для вопроса" , Что лучший способ состоит в том, чтобы распределить JAVA-приложения? "

34
ответ дан MultiplyByZer0 29 April 2018 в 06:16
поделиться

По моему скромному мнению JSmooth, кажется, делает довольно хорошее задание.

9
ответ дан Sнаđошƒаӽ 29 April 2018 в 06:16
поделиться

Мы используем Install4J для создания установщиков для сред Unix или окон.

Это легко настраиваемо до точки, где Вы хотите записать сценарии для специальных действий, которые не могут быть сделаны со стандартными диалогами. Но даже при том, что мы настраиваем сервисы окон с ним, мы только используем стандартные компоненты.

  • установщик + средство запуска
  • окна или unix
  • scriptable в задаче Ant Java
  • партии настраиваемых стандартных панелей и действий
  • дополнительно включают или загружают JRE
  • , может также запустить сервисы окон
  • несколько языков

, я думаю, что Launch4J от той же компании (просто средство запуска - никакой установщик).

пз: печально я не становлюсь оплаченным это подтверждение. Я точно так же, как тот инструмент.

16
ответ дан Stroboskop 29 April 2018 в 06:16
поделиться

Последняя версия Java Web Start была улучшена, чтобы обеспечить хорошую автономную работу, а также разрешить «локальную установку». На это стоит обратить внимание.

РЕДАКТИРОВАТЬ 2018: Java Web Start больше не входит в комплект новейших JDK. Oracle стремится к "

15
ответ дан 22 November 2019 в 22:43
поделиться

Если вам нужно преобразовать все приложение в собственный код, то есть EXE плюс библиотеки DLL, существует ExcelsiorJET . Я обнаружил, что он работает хорошо, и предоставил альтернативу объединению JRE.

9
ответ дан 22 November 2019 в 22:43
поделиться

В качестве альтернативы можно использовать какой-нибудь транслятор java-to-c (например, JCGO) и скомпилировать созданные файлы C в родной двоичный файл (.exe) для целевой платформы.

4
ответ дан 22 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

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