Sobre o projeto
JavaForce (JF) é uma biblioteca e SDK Java, versão 118.1, licenciada sob LGPL, destinada à criação de aplicativos desktop, aplicativos de console e serviços de sistema. É construída com Apache Ant e requer JDK 25+.
Recursos principais descritos no README:
- Pilha SIP/VoIP/RTSP
- Bindings nativos para FFmpeg, OpenGL, Vulkan, OpenCL e Camera
- E/S de PLC
- Carregadores nativos personalizados para aplicativos de console, aplicativos desktop e serviços de sistema
- Tarefas Ant para empacotar aplicativos como msi, deb, rpm, pac e dmg
Em vez de java.exe, o JavaForce compila um carregador nativo personalizado que incorpora a JVM, define o classpath, registra métodos nativos e inicia o método main do programa. Métodos nativos também são fornecidos em uma biblioteca compartilhada para quem prefere não usar os carregadores personalizados. O projeto migrou de JNI para a API FFM (Foreign Function & Memory) para acesso nativo, com algum JNI mantido para fixar arrays visando desempenho.
Aplicativos incluídos: o README menciona jfPhone, jfVideo Creator, jfAudio, jfMusic e outros, com uma lista completa em projects/readme.txt. O JavaForce também é a biblioteca central do jfLinux, uma distribuição Linux com Java integrado, e é usado para construir o jfCraft, um clone de Minecraft.
Estrutura do repositório: /src para fontes Java, /lib para jars gerados e de dependências, /native para carregadores nativos, /projects para fontes de subprojetos, /iso e /linux e /windows para scripts de build/instalação, e /utils para aplicativos utilitários.
Fluxo de build: instale git e Ant, configure os finais de linha, clone o repositório, faça checkout de uma tag de versão, execute ant e então compile os carregadores nativos. As tarefas de empacotamento incluem deb, rpm, pac, msi (com JRE incluído, usando WiX Toolset v4+) e dmg (usando hdiutil no macOS). Tarefas de pré-linkagem do JRE (jre-all, jre-base, jre-base-desktop, jre-base-javac) dão suporte ao empacotamento nativo. O JavaForce é publicado no Maven Central; tarefas Ant cuidam do download e upload de dependências, e um pom.xml mínimo é necessário para publicação no Sonatype.
Outros recursos: suporte a AOT do GraalVM via tarefas Ant graalagent e graal (o suporte a GraalVM AWT ainda está em desenvolvimento), depuração JMX por meio das variáveis de ambiente JF_DEBUG e JF_DEBUG_PORT ou configurações em .cfg, e um formato de arquivo .cfg que controla CLASSPATH, MAINCLASS, DEBUG, DEBUG_PORT, OPTIONS, JAVA_HOME e METHOD.
Requisitos: JDK 25+, Apache Ant 1.10+, gcc no Linux, VC++ e WiX Toolset 4+ no Windows, Xcode gcc no macOS, FFmpeg 7.1+ e glfw 3.5.1 para OpenGL/Vulkan. Os componentes Wayland, Bluetooth e RDP estão listados como em desenvolvimento.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.