十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

JWM从源码构建完整教程:CMake+Ninja工具链三平台编译实战

JWM从源码构建完整教程:CMake+Ninja工具链三平台编译实战 JWM从源码构建完整教程CMakeNinja工具链三平台编译实战【免费下载链接】JWMCross-platform window management and OS integration library for Java项目地址: https://gitcode.com/gh_mirrors/jwm/JWMJWM 是一款跨平台的 Java 窗口管理与操作系统集成库为 JVM 提供原生窗口创建、输入事件处理和系统级集成的统一接口。本文将带你用 CMake Ninja 工具链在 Windows、Ubuntu、macOS 三大平台上完成 JWM 源码构建的完整实战并跑通示例验证编译结果。一、先看懂构建结构三大平台目录划分JWM 的原生层使用 C 编写按操作系统做了清晰的目录隔离目录职责shared/cc/平台无关的 C 公共代码窗口抽象、键位映射等windows/cc/Win32 / Direct3D 12 渲染实现linux/cc/X11 / OpenGL 实现macos/cc/Cocoa / Metal 实现script/Python 构建脚本负责驱动 CMake Ninja 流程每个平台都有自己的 CMake 配置文件windows/CMakeLists.txt、linux/CMakeLists.txt、macos/CMakeLists.txt根目录的CMakeLists.txt会按当前系统自动选择对应子目录。这种公共代码 平台适配的结构正是 JWM 能用同一条构建命令打通三平台的原因。二、工具链快速安装CMake Ninja JDK 依赖清单 开始编译前先按清单装好依赖类别依赖说明通用Git、CMake 3.11、Ninja、C 编译器Ninja 是构建真正的执行者CMake 负责生成构建规则通用JDK 11 并设置JAVA_HOME原生层需要 JNI 头文件通用Python 3构建脚本使用Windows 10MSVC 编译器通过 Visual Studio 安装构建需进入 x64 Native Tools Command PromptUbuntu 20.04X11 开发库一条命令装齐macOSXcode 命令行工具用于 clang 与系统框架各平台额外依赖安装命令# Ubuntu 20.04一次性安装 X11 / OpenGL 开发库 sudo apt install libxcomposite-dev libxrandr-dev libgl1-mesa-dev libxi-dev libxcursor-dev # macOS安装 Xcode 工具与 Ninja xcode-select --install brew install ninja python⚠️ Windows 有个硬门槛windows/CMakeLists.txt中检测到非 MSVC 编译器会直接报错终止所以务必在 Visual Studio 的x64 Native Tools Command Prompt中执行构建。三、构建脚本原理CMake Ninja 三步走流程一行命令./script/build.py背后脚本script/build.py实际完成了三步CMake 配置进入对应平台目录执行cmake -DCMAKE_BUILD_TYPERelease -B build -G Ninja -DJWM_ARCH架构其中JWM_ARCH会根据当前 CPU 自动识别为x64或arm64macOS 还会自动追加架构参数Ninja 编译在build/目录内运行ninja产出平台原生动态库Java 编译用javac编译shared/java、windows/java、linux/java、macos/java四套 Java 源码输出到target/classes/最终产物命名规则一览平台构建产物Windowsjwm_x64.dll/jwm_arm64.dllUbuntulibjwm_x64.so/libjwm_arm64.somacOSlibjwm_x64.dylib/libjwm_arm64.dylib脚本会自动把产物复制到target/classes/无需手动搬运。四、三平台编译实战一条命令完成构建首先获取 JWM 源码git clone https://gitcode.com/gh_mirrors/jwm/JWM cd JWM在对应平台的终端中执行构建./script/build.pyWindows先set JAVA_HOMEC:\path\to\jdk再运行python script\build.pyUbuntu确保export JAVA_HOME...CMake 找不到时会自动搜索/usr/lib/jvm/java-*macOS与 Linux 用法一致注意提前装好 Ninja 如果想手动理解 CMake 流程可以分步执行cd linux # 或 windows / macos cmake -DCMAKE_BUILD_TYPERelease -B build -G Ninja ninja -C build构建成功后在平台目录的build/下即可看到libjwm_x64.so或.dylib/.dll说明原生窗口管理层编译成功。五、验证构建运行示例与安装本地 JAR编译完成后最快的验证方式是运行官方示例应用./script/run.py你会看到一个带仪表盘面板的窗口可实时体验窗口管理、多屏幕坐标与事件系统如果要在自己的项目中使用本地构建的产物执行安装脚本生成本地 JAR./script/install.py产物为target/jwm-0.0.0-SNAPSHOT.jar会同时安装到~/.m2/repository/io/github/humbleui/jwm/构建脚本定义见script/install.py与script/common.py。六、常见构建报错速查表报错信息原因解决方法Java home not found!未设置JAVA_HOME指向 JDK 11 安装路径后重试Could NOT find X11Ubuntu 缺少 X11 开发库执行第二节的apt install命令Support only MSVC C compilerWindows 用了错误终端换用 x64 Native Tools Command Promptninja: command not found未安装 NinjamacOS 执行brew install ninja排查疑难问题时设置环境变量JWM_VERBOSEtrueWindows 用set JWM_VERBOSEtrue可输出更详细的原生层日志。总结JWM 源码构建可以浓缩为三步装好 CMake Ninja JDK 工具链 → 运行./script/build.py→ 用./script/run.py验证。同一条构建命令即可覆盖 Windows、Ubuntu、macOS 三平台编译。熟悉构建流程后你可以进一步阅读shared/java/中的窗口管理 API或参考examples/dashboard/的示例工程开发自己的应用。【免费下载链接】JWMCross-platform window management and OS integration library for Java项目地址: https://gitcode.com/gh_mirrors/jwm/JWM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表