Якщо у мене є вихідний файл Java (* .java) або файл класу (* .class), як я можу конвертувати його у файл .exe?
Мені також потрібен інсталятор для моєї програми.
Якщо у мене є вихідний файл Java (* .java) або файл класу (* .class), як я можу конвертувати його у файл .exe?
Мені також потрібен інсталятор для моєї програми.
Відповіді:
Інструмент Java Packager компілює, пакує та готує програми Java та JavaFX до розповсюдження. Команда javapackager є версією командного рядка.
- документація Oracle
В javapackager
утиліті поставляється з JDK. Він може генерувати .exe файли з -native exe
прапором, серед багатьох інших речей.
WinRun4j - це запуск Java для Windows. Це альтернатива javaw.exe і надає наступні переваги:
- Використовує файл INI для визначення класного шляху, основного класу, аргументів vm, програмних аргументів.
- Спеціальне ім'я виконавця, яке відображається в диспетчері завдань.
- Додаткові аргументи JVM для більш гнучкого використання пам'яті.
- Вбудований замінник значка для спеціальної іконки.
- [більше кульових точок слідує]
- Веб-сторінка WinRun4J
WinRun4J - це утиліта з відкритим кодом. Він має багато особливостей.
Пакує свій JAR, активи та JVM для розповсюдження в Windows, Linux та Mac OS X, додаючи власний виконуваний файл, щоб він виглядав як рідний додаток. Packr найбільш підходить для програм GUI.
- упаковка ПРОЧИТИ
packr - ще один інструмент з відкритим кодом.
JSmooth - це виконана Java обертва. Він створює рідні пускові установки Windows (стандартні .exe) для ваших програм Java. Це робить розгортання Java набагато плавнішим та зручнішим у користуванні, оскільки він може знайти будь-яку встановлену Java VM самостійно.
- веб-сайт JSmooth
JSmooth є відкритим кодом і має функції, але він дуже старий. Останній реліз був у 2007 році.
JexePack - це інструмент командного рядка (відмінно підходить для автоматизованого сценарію), який дозволяє пакувати додаток Java (файли класу), необов'язково разом із його ресурсами (наприклад, GIF / JPG / TXT / тощо) в єдиний стислий 32-бітний Windows EXE , який працює за допомогою Java Sun Runtime Environment Sun. Підтримуються як консольні, так і віконні програми.
- веб-сайт JexePack
JexePack є пробним. Оплата необхідна для виробничого використання, а файли EXE, створені за допомогою цього інструменту, відображатимуть «нагадування» без оплати. Також останній реліз був у 2013 році.
InstallAnywhere спрощує розробників для створення професійного інсталяційного програмного забезпечення для будь-якої платформи. Завдяки InstallAnywhere ви швидко адаптуєтесь до змін у галузі, швидше вийдете на ринок та забезпечите цікавий досвід клієнтів. І знайте вразливість компонентів OSS вашого проекту перед відправкою.
- веб-сайт InstallAnywhere
InstallAnywhere - це комерційний / корпоративний пакет, який створює інсталятори для програм на базі Java. Можливо, він здатний створювати .exe файли.
Як альтернатива .exe-файлам, ви можете створити файл JAR, який автоматично запускається при двічі клацанні, додаючи в маніфест JAR точку входу .
Прекрасним джерелом інформації на цю тему є стаття Excelsior " Перетворити Java в EXE - чому, коли, коли немає і як ".
Дивіться також супровідну статтю " Найкращі інструменти перетворення JAR в EXE, безкоштовні та комерційні ".
Launch4j - це крос-платформний інструмент для загортання Java-програм, розподілених у вигляді баночок у легких рідних виконуваних файлах Windows. Виконавчий файл може бути налаштований для пошуку певної версії JRE або використання пакетної версії, а також можна встановити параметри виконання, наприклад початковий / максимальний розмір купи. Обгортка також забезпечує кращу взаємодію з користувачем через піктограму програми, нативну екрану перед вказівкою JRE, спеціальну назву процесу та сторінку завантаження Java у випадку, якщо відповідний JRE не може бути знайдений.
- Веб-сайт Launch4j
ОНОВЛЕННЯ: GCJ мертвий. Він був офіційно вилучений з проекту GCC в 2016 році. Ще до цього його практично відмовилися протягом семи років, і в будь-якому випадку він ніколи не був достатньо повним, щоб слугувати життєздатною альтернативною реалізацією Java.
Перейдіть до іншого компілятора Java AOT.
GCJ: Компілятор GNU для Java може компілювати вихідний код Java у власний машинний код, включаючи виконувані файли Windows.
Хоча не все в Java підтримується в GCJ, особливо компоненти графічного інтерфейсу (див. Які підтримуються API Java? Наскільки повною є підтримка? Питання із FAQ ). Я мало використовував GCJ, але з обмеженого тестування, яке я робив із консольними програмами, це здається прекрасним.
Одним із недоліків використання GCJ для створення автономного виконуваного файлу є те, що розмір отриманого EXE може бути досить великим. Одного разу я скомпілював тривіальну консольну програму в GCJ, і результат отримав виконується близько 1 Мб. (Можливо, існують способи, про які я не знаю. Іншим варіантом можуть бути виконувані програми стиснення.)
Що стосується встановлених програм з відкритим кодом, то програма встановлення Nullsoft Scriptable - це сценарій встановлення. Якщо вам цікаво, є приклади , що надаються користувачем, як визначити наявність JRE та встановити його автоматично, якщо потрібний JRE не встановлений. (Просто для того, щоб знати, я раніше не використовував NSIS.)
Для отримання додаткової інформації щодо використання NSIS для встановлення Java-програм, будь ласка, подивіться на мою відповідь на питання " Який найкращий спосіб розповсюдження Java-програм? "
Ви можете зробити пакетний файл із таким кодом:
start javaw -jar JarFile.jar
і перетворити .bat в .exe за допомогою будь-якого перетворювача .bat в .exe.
Ми використовуємо Install4J для створення інсталяторів для Windows або Unix середовищ.
Це легко настроюється до того моменту, коли ви хочете написати сценарії для спеціальних дій, які неможливо виконати зі стандартними діалогами. Але навіть якщо ми налаштовуємо для нього служби Windows, ми використовуємо лише стандартні компоненти.
Я думаю, що Launch4J - від тієї самої компанії (тільки пускова установка - інсталятора немає).
PS: На жаль, за це схвалення мені не платять. Мені просто подобається цей інструмент.
Найновіший Java Web Start був удосконалений, щоб забезпечити хорошу роботу в автономному режимі, а також дозволяє "локальну установку". Варто розібратися.
EDIT 2018: Java Web Start більше не входить у комплект із новими JDK. Oracle підштовхує до того, щоб "розгортати додаток на локальному рівні із вкладеною моделлю JRE".
Якщо вам потрібно конвертувати всю вашу програму в нативний код, тобто EXE плюс DLL, існує ExcelsiorJET . Я виявив, що це працює добре і запропонував альтернативу комплектації JRE.
Я б сказав, що запуск4j - найкращий інструмент для перетворення вихідного коду Java (.java) у .exe-файл. Ви навіть можете зв’язати jre з ним для розповсюдження, а exe навіть можна ініціювати. Незважаючи на те, що розмір програми збільшується, це гарантує, що програма буде працювати бездоганно, навіть якщо у користувача не встановлено jre. Він також гарантує, що ви можете надати конкретний jre, необхідний для вашої програми, без того, щоб користувач міг встановлювати його окремо. Але, на жаль, java втрачає своє значення. Підтримка мульти платформи повністю ігнорується, а остаточний додаток підтримується лише для Windows. Але це не велика справа, якщо ви обслуговуєте лише користувачів Windows.
Крім того, ви можете скористатися деяким перекладачем java-c-c (наприклад, JCGO ) і компілювати згенеровані файли C в нативний бінарний (.exe) файл для цільової платформи.
Мені можна пробачити за те, що я не перетворював програму java в додаток .exe, і в мене є свої причини. Основна з них полягає в тому, що програма java може бути скомпільована до jar-файлу з безлічі IDE. Коли програма знаходиться у форматі .jar, вона може працювати в декількох платформах, на відміну від .exe, яка запускається лише в дуже обмеженому середовищі. Я за ідею, що Java-програми не повинні бути перетворені в Exe, якщо це не потрібно. Завжди можна записати файли .bat, які запускає програму Java, але це файл jar.
якщо це дійсно необхідно перетворити його в exe, конвертер Jar2Exe мовчки робить це, і ви також можете приєднати Бібліотеки, складені разом з Основним додатком.