2016-12-29 5 views
-1

Я скомпилировал мое приложение java с 64-битным JDK на окнах, затем я упаковал JAR-файл с помощью Excelsior Jet 11.3 (64-разрядный), чтобы дать мне элегантный exe-исполняемый файл, готовый для использования конечными пользователями, работающими под Windows.Как я могу запустить приложение exe Java на 32-битной и 64-битной системах?

Файл exe отлично работает на моей машине (Windows 7 64-bit), но когда я развернулся на другие 32-разрядные системы (windows xp & windows 7), он не работает, он показывает сообщение об ошибке, в котором говорится, что exe не распознается как действительная 32-разрядная программа.

Как я могу это решить?

+1

Оставьте это как файл JAR? –

+0

Это потребует от моих конечных пользователей установки JRE !!! ?? – EvilThinker

+2

Хорошо, да. Но тогда они смогут запустить ваш код независимо от того, находятся ли они в 64 или 32-битной системе или в Unix или в IOS, ... –

ответ

4

Как я могу это решить?

Ну, стандартные способы распространения Java (файлы JAR, WebStart и т. Д.) Позволяют избежать этого, поскольку байт-коды не зависят от платформы. Вы намеренно решили распространять EXE-файлы, которые по своей сути являются специфичными для платформы.

Если вы хотите придерживаться EXEs может думать о двух альтернативах:

  • создавать и распространять различную EXE для каждой комбинации платформ OS + оборудований, которые вам нужно поддерживать. (32 Windows, 64-разрядные Windows, различные MacOS, Linux на Intel, Linux на ARM, Solaris и т. Д.)

  • Выберите самый низкий общий знаменатель; например 32-разрядный Windows EXE должен быть запущенным в 64-разрядной ОС Windows.


Но я бы рекомендовал либо получать пользователю установить JRE или предоставление инсталлятор, который установлен встроенный JRE.

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