# wwopenspec java sdk

## 目录结构

- libWeWorkSpecSDK.so：java sdk所需的动态链接库
- com：专区SDK的源码
- README_SDK.md：本说明

## SDK结构说明

com
└── tencent
    └── wework                          注意：需保持com.tencent.wework结构
        ├── SpecCallbackSDK.java:       SpecCallbackSDK接口
        ├── SpecSDK.java:               SpecSDK接口
        └── SpecUtil.java:              SDK内的通用工具

## 环境配置

- 使用时应将动态链接库拷贝到Java查找本地库的路径（`java.library.path`）下（如`/usr/lib`），或添加本地库查找路径
    - 本地库查找路径可在Java程序内调用`System.getProperty("java.library.path")`或命令行界面调用`java -XshowSettings:properties -version`查看
  
- sdk依赖`openssl3`，开发者请自行下载最新版。需要`libcrypto.so.3`和`libssl.so.3`，配置参考如下
    - 源码安装：进入openssl目录，构建需要的两个库：`make libcrypto.so`、`make libssl.so`。将so放入本地库加载路径，您的本地库加载路径可通过`cat /etc/ld.so.conf`查看。或者修改您的环境变量`LD_LIBRARY_PATH`添加动态链接库的查找路径
    - 包管理安装：使用您镜像的包管理下载安装x86_64的openssl3即可

## 其他说明

- `.so`是类Unix系统（如Linux）的动态链接库，只能在类Unix系统使用，Windows系统（`.dll`）和Mac系统（`.dylib`）的动态链接库将在后续推出，敬请期待

- **需保持包结构**，不要将sdk的源文件复制到项目包中，否则JNI的本地方法引用会失效
    - 原因：JNI注册的方法包含包结构，详见javah生成本地方法头文件