尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Windows 下构建 liboqs-java,实现 PQC 算法的调用

Windows 下构建 liboqs-java,实现 PQC 算法的调用
📅 发布时间:2026/6/29 5:30:31

环境与工具

Windows 10 / Windows 11 + MinGW-w64 + CMake + JDK + Maven

1. 先理解 liboqs 和 liboqs-java 的关系

在开始构建之前,先简单理一下几个组件之间的关系。

Spring Boot / Java 业务代码 | | 调用 Java API v liboqs-java.jar | | JNI 调用 v oqs-jni.dll | | 链接 v liboqs.a / liboqs | | 实际执行算法 v ML-KEM、ML-DSA 等 PQC 算法

可以这样理解:

组件作用
liboqsC 语言实现的后量子密码学算法库
liboqs-java对liboqs的 Java 封装
oqs-jni.dllJava 和 native 层之间的 JNI 桥接库
liboqs-java.jarJava 项目最终要引入的 JAR 包

所以构建顺序一定是:

  1. 先构建liboqs
  2. 再构建liboqs-java
  3. 最后在 Java / Spring Boot 项目中引用生成的 JAR

如果跳过第一步,直接构建liboqs-java,通常会遇到找不到oqs.h、找不到liboqs.a之类的问题。


2. 构建时候的项目目录结构

因为需要在github上获取liboqs与libqos-java两个项目源码,构建时候建议最终的目录结构如下:

D:\workspace\liboqs-java-main ├── pom.xml ├── README.md ├── examples │ ├── KEMExample.java │ ├── SigExample.java │ └── RandExample.java ├── src ├── liboqs │ ├── CMakeLists.txt │ ├── src │ └── build │ ├── include │ │ └── oqs │ │ └── oqs.h │ └── lib │ └── liboqs.a └── target └── liboqs-java.jar

其中比较关键的是这几个文件:

liboqs\build\include\oqs\oqs.h liboqs\build\lib\liboqs.a target\liboqs-java.jar

只要这几个文件都生成了,说明主流程基本走通了。


3. 准备构建工具

需要提前安装下面几个工具。

工具用途
MinGW-w64提供gcc、g++,用于编译 C 代码和 JNI 代码
CMake生成并驱动liboqs的构建
JDK编译 Java 代码,同时提供 JNI 头文件
Maven构建liboqs-java并打包 JAR
Git拉取源码,非必需,也可以手动下载 ZIP

建议所有工具都安装在英文路径下,不要放在带中文或空格的目录里。例如:

D:\c_tools\mingw64 D:\java\jdk-21 D:\javaTools\apache-maven-3.9.x D:\workspace

这是因为 native 构建工具对路径比较敏感,中文路径或空格路径有时会带来一些很难排查的问题。


4. 安装 MinGW-w64

可以使用 WinLibs 提供的 MinGW-w64 发行版。

下载地址:

https://winlibs.com/

选择 Windows x86_64 版本即可。下载后解压到类似下面的目录:

D:\c_tools\mingw64

确认下面几个文件存在:

D:\c_tools\mingw64\bin\gcc.exe D:\c_tools\mingw64\bin\g++.exe D:\c_tools\mingw64\bin\mingw32-make.exe

后面 CMake 会通过这些工具来编译liboqs和 JNI 代码。


5. 安装 CMake

可以使用 winget 安装:

winget install Kitware.CMake

也可以从官网下载 Windows x64 Installer:

https://cmake.org/download/

安装时建议勾选:

Add CMake to the system PATH

安装完成后,重新打开一个 PowerShell,执行:

cmake --version

能看到版本号就说明 CMake 已经可以正常使用。


6. 安装 JDK

JDK 可以使用 Eclipse Temurin 或 Oracle JDK。

下载地址:

https://adoptium.net/ https://www.oracle.com/java/technologies/downloads/

本文示例使用 JDK 21,安装路径假设为:

D:\java\jdk-21

需要确认以下文件存在:

D:\java\jdk-21\bin\java.exe D:\java\jdk-21\bin\javac.exe D:\java\jdk-21\include\jni.h

其中jni.h很重要。构建liboqs-java时会编译 JNI 代码,如果安装的是 JRE 而不是 JDK,就会缺少这个头文件。


7. 安装 Maven

从 Maven 官网下载 binary zip 包:

https://maven.apache.org/download.cgi

解压到:

D:\javaTools\apache-maven-3.9.x

确认下面文件存在:

D:\javaTools\apache-maven-3.9.x\bin\mvn.cmd

8. 配置环境变量

这是 Windows 下最容易出问题的一步。

建议配置以下用户变量:

变量名示例值
JAVA_HOMED:\java\jdk-21
MAVEN_HOMED:\javaTools\apache-maven-3.9.x
MinGW_HOMED:\c_tools\mingw64

然后把下面几个目录加入Path:

相关新闻

  • Codex 桌面版配对码在哪里找?手机连接电脑完整步骤
  • 大模型MoE架构揭秘:为何GPT-4只用2%参数高效推理
  • AI工具链降维时刻:ONNX默认化、Prompt结构化与QAT工程化

最新新闻

  • Linux 系统中LD_PRELOAD有哪些用处?
  • ReBalance:无需重训练即可实现推理精度+10%、长度-35%的动态思考调控
  • 嵌入式定时器实战:RL78 MCU脉冲测量与PWM输出API详解
  • 第8章:Agent 模式入门——让 AI 学会调用工具
  • 软考系统分析师高频考点全景图(含2024新增AI治理模块):1张思维导图覆盖全部19个命题维度,稀缺性仅开放48小时
  • 任意文件下载漏洞深度剖析:从原理到防御的完整攻击链拆解

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号