Как конвертировать JAR файл в EXE файл?

Я хочу создать JAR файл, и я хочу запустить его на клиентской машине. Итак, у меня есть пара вопросов:

  1. Как преобразовать файл JAR в EXE файл?
  2. Как я могу зашифровать содержимое JAR файла? Файл jar может быть извлечен с помощью WinRAR, и классы могут быть декомпилированы с любым декомпилятором Java.
  3. Как создать установщик? У моих клиентов нет JVM, и я не хочу отправлять JDK или JRE, потому что они имеют большой размер.

Ответы

Ответ 1

  1. См. Эту ссылку: Java to Exe. Он также объясняет, какие веские причины для этого делать, а когда нет.

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

  3. Если у вас есть exe, есть инсталляторы.

Ответ 2

JSmooth - это приложение, которое обернет ваш Jar в exe

он также позволяет вам проверить, доступна ли правильная версия JRE в системе, которую вы развертываете в

http://jsmooth.sourceforge.net/

Ответ 3

Что касается 1): Я думаю, вы не можете. Там могут быть инструменты, но вы не можете сделать это со стандартными инструментами, поставляемыми с JDK, так как это разрушит независимость платформы. (См. Другие ответы, содержащие ссылки на такие сторонние инструменты)

Как для 3): Используйте InnoSetup для создания установщика. Включите JRE в настройку и пусть InnoSetup установит его на лету.

Ответ 4

Вы не можете предотвратить декомпиляцию. Лучшее, что вы можете сделать, это сделать его сложнее или более трудоемким для этого. В качестве ответа на ваш вопрос, однако, я считаю, что вы можете использовать gcj для компиляции Java в EXE.

Ответ 5

Может быть Excelsior JET удовлетворит ваши потребности.) IMHO очень зрелый продукт.

Ответ 6

1) Недавно я попробовал программу jarToExe и понравился. Некоторые функции:

  • бесплатная базовая версия или очень дешевая ($ 30) для 'enterprise'
  • возможность иметь диспетчер задач Windows для отображения имени вашего приложения вместо стандартного java.exe
  • дополнительная обфускация
  • время выполнения проверяет, что установлена ​​java

2). Вы можете сделать сложнее обратное проектирование с помощью proguard или другого обфускатора

3) nsis - очень мощный бесплатный скриптовый язык для создания установщиков Windows. Хорошая документация на вики-странице сайта и поддержка.

Ответ 7

Launch4j работал у меня, а некоторые инструменты не работали. Здесь также есть хороший путеводитель здесь.

Надеюсь на эту помощь!

Ответ 8

Мы используем 7zip SFX install launcher. Это простой инструмент с открытым исходным кодом. Он упакует вашу банку, версию jre, поэтому не обязательно, чтобы установочные системы установили jre и самораспаковывающуюся версию 7zip. Вот учебник, в котором объясняется, как связывать и связывать GitHub. Проект не поддерживается, но работает отлично (тестируется до Java 1.8)