Об этом проекте
JavaForce (JF) — это библиотека и SDK для Java версии 118.1 под лицензией LGPL, предназначенные для создания настольных приложений, консольных приложений и системных служб. Проект собирается с помощью Apache Ant и требует JDK 25+.
Основные возможности, описанные в README:
- Стек SIP/VoIP/RTSP
- Нативные привязки для FFmpeg, OpenGL, Vulkan, OpenCL и Camera
- ПЛК-ввод-вывод
- Собственные нативные загрузчики для консольных приложений, настольных приложений и системных служб
- Задачи Ant для упаковки приложений в форматы msi, deb, rpm, pac и dmg
Вместо java.exe JavaForce собирает собственный нативный загрузчик, который встраивает JVM, задаёт classpath, регистрирует нативные методы и запускает главный метод программы. Нативные методы также предоставляются в разделяемой библиотеке для тех, кто предпочитает не использовать собственные загрузчики. Проект перешёл с JNI на API FFM (Foreign Function & Memory) для нативного доступа, при этом часть JNI сохранена для закрепления массивов ради производительности.
Включаемые приложения: в README упоминаются jfPhone, jfVideo Creator, jfAudio, jfMusic и другие, полный список находится в projects/readme.txt. JavaForce также является основной библиотекой jfLinux — дистрибутива Linux с интеграцией Java — и используется для сборки jfCraft, клона Minecraft.
Структура репозитория: /src для исходников Java, /lib для сгенерированных и зависимых jar-файлов, /native для нативных загрузчиков, /projects для исходников подпроектов, /iso, /linux и /windows для скриптов сборки/установки, /utils для служебных приложений.
Процесс сборки: установите git и Ant, настройте окончания строк, клонируйте репозиторий, переключитесь на тег версии, запустите ant, затем соберите нативные загрузчики. Задачи упаковки включают deb, rpm, pac, msi (с встроенной JRE, с использованием WiX Toolset v4+) и dmg (с использованием hdiutil в macOS). Задачи предварительной компоновки JRE (jre-all, jre-base, jre-base-desktop, jre-base-javac) поддерживают нативную упаковку. JavaForce публикуется в Maven Central; задачи Ant обрабатывают загрузку и выгрузку зависимостей, а для публикации через Sonatype требуется минимальный pom.xml.
Другие возможности: поддержка GraalVM AOT через задачи graalagent и graal в Ant (поддержка GraalVM AWT всё ещё в разработке), отладка JMX через переменные среды JF_DEBUG и JF_DEBUG_PORT или настройки в .cfg, а также формат файла .cfg, управляющий CLASSPATH, MAINCLASS, DEBUG, DEBUG_PORT, OPTIONS, JAVA_HOME и METHOD.
Требования: JDK 25+, Apache Ant 1.10+, gcc в Linux, VC++ и WiX Toolset 4+ в Windows, Xcode gcc в macOS, FFmpeg 7.1+ и glfw 3.5.1 для OpenGL/Vulkan. Компоненты Wayland, Bluetooth и RDP указаны как находящиеся в разработке.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.