#jvm #java
Вопрос такой, если создать .jar или .exe исполняемый файл, он запустится на компьютере на котором нет JVM и не установлены JDK и JRE?
Ответы
Ответ 1
Т.к. jar в принципе не может работать без JVM (потому что jar - это набор классов в виде байт-кода, а не в виде исполняемых бинарных файлов), то сформулируем Ваш вопрос так: как в один .exe-файл упаковать свой .jar-проект и JVM. Чтобы Ваш проект мог запускаться и работать без предустановки JVM? На stackoverflow описали успешный эксперимент по скрещиванию launch4j и JVM (т.е. JRE). Делюсь ссылкой: как упаковать свой JAR-проект и JRE в один EXE-файл через launch4j. Перевожу ответ из ссылки: 1.Упаковать свое приложение и JRE в один ZIP-архив со структурой директорий: containerFolder |- jre |-bin (здесь лежит java.exe из состава JRE) |-lib |- cfg (папка для сохранения user-конфигурации, если нужно) |- bin (Ваше приложение с .exe и вашим jar-файлом и другими Вашими внешними файлами из проекта) 2.В xml-файле для launch4j сконфигурировать JRE таким образом:Фишка состоит в том, что путь указывается не к файлу java.exe. Путь к java.exe указывается относительно позиции .exe-файла. В данном примере, в качестве JRE, используется обычная копия стандартного установленного JRE-движка (например: C:\Program Files\Java\jre1.8.0_121). И да, Launch4j - бесплатный и с очень демократичной лицензией BSD 3-Clause License. ../jre -DgvSIG.confDir=../cfg Ответ 2
Нет, не получится. Вы хорошо подумали? Есть такие упаковщики, которые в полученный EXE пакуют версию JRE/JVM, в которой и будет запускаться jar. Например ExcelsiorJET - правда, он коммерческий, но если поискать я думаю есть и бесплатные.Ответ 3
Нет, не получится. Есть только одна альтернатива. Некоторые упаковщики в exe, могут привязать его к локальному jvm. То есть вместе с exe придется таскать папку с jre.
Комментариев нет:
Отправить комментарий