这个项目能做什么

JavaForce (JF) 是一个 Java 库和 SDK,版本 118.1,采用 LGPL 许可,旨在构建桌面应用、控制台应用和系统服务。它使用 Apache Ant 构建,需要 JDK 25+。 README 中描述的核心能力: - SIP/VoIP/RTSP 协议栈 - FFmpeg、OpenGL、Vulkan、OpenCL 和 Camera 的原生绑定 - PLC I/O - 用于控制台应用、桌面应用和系统服务的自定义原生加载器 - 将应用打包为 msi、deb、rpm、pac 和 dmg 的 Ant 任务 JavaForce 不采用 java.exe,而是构建一个自定义原生加载器,内嵌 JVM、设置 classpath、注册原生方法并启动程序的 main 方法。对于不想使用自定义加载器的用户,共享库中也提供了原生方法。该项目已从 JNI 迁移到 FFM(Foreign Function & Memory)API 进行原生访问,同时保留部分 JNI 以固定数组以提升性能。 包含的应用:README 提到 jfPhone、jfVideo Creator、jfAudio、jfMusic 等,完整列表见 projects/readme.txt。JavaForce 也是 jfLinux(一个融入 Java 的 Linux 发行版)的核心库,并用于构建 jfCraft(一个 Minecraft 克隆)。 仓库布局:/src 存放 Java 源代码,/lib 存放生成的 jar 和依赖 jar,/native 存放原生加载器,/projects 存放子项目源代码,/iso、/linux 和 /windows 存放构建/安装脚本,/utils 存放实用工具应用。 构建流程:安装 git 和 Ant,配置行尾符,克隆仓库,检出某个版本标签,运行 ant,然后构建原生加载器。打包任务包括 deb、rpm、pac、msi(捆绑 JRE,使用 WiX Toolset v4+)和 dmg(在 macOS 上使用 hdiutil)。JRE 预链接任务(jre-all、jre-base、jre-base-desktop、jre-base-javac)支持原生打包。JavaForce 已发布到 Maven Central;Ant 任务负责依赖下载和上传,向 Sonatype 发布需要一个最小的 pom.xml。 其他功能:通过 graalagent 和 graal Ant 任务支持 GraalVM AOT(GraalVM AWT 支持仍在开发中),通过 JF_DEBUG 和 JF_DEBUG_PORT 环境变量或 .cfg 设置进行 JMX 调试,以及控制 CLASSPATH、MAINCLASS、DEBUG、DEBUG_PORT、OPTIONS、JAVA_HOME 和 METHOD 的 .cfg 文件格式。 要求:JDK 25+、Apache Ant 1.10+、Linux 上的 gcc、Windows 上的 VC++ 和 WiX Toolset 4+、macOS 上的 Xcode gcc、FFmpeg 7.1+ 以及用于 OpenGL/Vulkan 的 glfw 3.5.1。Wayland、Bluetooth 和 RDP 组件被列为开发中。