Робимо java додаток незалежним від установки jre або переносним (portable), стрілець coder

Одна з основних труднощів поширення Java програм - необхідність наявності на комп'ютері користувача середовища виконання Java Runtime Environment (JRE). Саме тому переносні (portable) додатки на Java рідкість.

У той же час цю проблему цілком можна вирішити і створити не тільки переносне, але і «звичайне» програму, що не буде вимагати наявності попередньо встановленою JRE.

Однак, з огляду на кроссплатформенность Java, відразу відзначимо, що в даній статті мова піде про рішення даного завдання стосовно середовищі Windows.

Існує два основні підходи до вирішення даного завдання.

Спосіб 1. Перетворення в нативний код

Інакше кажучи, перетворення з jar в exe.

Здавалося б, це найочевидніший спосіб. Але, насправді, він самий важко реалізувати і практично не працездатний.

Здійснити конвертацію jar в exe в принципі не проблема. Зокрема, є маса утиліт, які дозволяють це зробити. Однак переважна практично всі вони не рятують від необхідності встановлювати JRE. Без JRE exe файл, створений цими утилітами, все одно не запуститься.

Ті ж з них, що, якщо вірити опису, претендують на повне розв'язання даної проблеми, давно не розвиваються і перед застосуванням їх необхідно самих компілювати з вихідних кодів.

Спосіб 2. Використання переносний версііJRE

Однак запустити Java програму в цьому випадку можна тільки двома способами:

  • З командного рядка;
  • За допомогою програми завантажувача.

Перший варіант не підходить, тому що занадто складний для рядового користувача. Залишається другий.

Принцип роботи завантажувача, насправді, досить простий. Програма передає JRE команди необхідні для запуску Java програми та після цього закривається. Тим самим автоматизуючи процес запуску, що виконується в разі командного рядка вручну.

Розглянемо приклад написання такого завантажувача на Delphi. Припустимо, що завантажувач, jar файл з Java додатком і папка з JRE розташовані в одній загальній папці.

Визначимо константи (відносний шлях до виконуваного файлу JRE і передаються команди (включають відносний шлях до файлу Java додатки)).

Схожі статті