Вопрос такой, если создать .jar или .exe исполняемый файл, он запустится на компьютере на котором нет JVM?
Нет, не получится.
Вы хорошо подумали?
Есть такие упаковщики, которые в полученный EXE пакуют версию JRE/JVM, в которой и будет запускаться jar.
Например ExcelsiorJET - правда, он коммерческий, но если поискать я думаю есть и бесплатные.
Т.к. 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 таким образом:
<jre>
<path>../jre</path>
<opt>-DgvSIG.confDir=../cfg</opt>
</jre>
Фишка состоит в том, что путь указывается не к файлу java.exe. Путь к java.exe указывается относительно позиции .exe-файла.
В данном примере, в качестве JRE, используется обычная копия стандартного установленного JRE-движка (например: C:\Program Files\Java\jre1.8.0_121).
И да, Launch4j - бесплатный и с очень демократичной лицензией BSD 3-Clause License.
Нет, не получится. Есть только одна альтернатива. Некоторые упаковщики в exe, могут привязать его к локальному jvm. То есть вместе с exe придется таскать папку с jre.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я создал простую JsonRPC server (Netty socketServer) для выполнения определенных задач, общих для нашей команды, но вызывающиеся из разных сетейСервер получает...
На странице внезапно появились символы `` c разными вариациями, в зависимости от ОС: