4、开发环境搭建(Java)

搭建一个干净的 Java 开发环境,说实话,是后续所有工作的地基。我见过不少同事因为 JDK 版本没对齐,调试加密 SDK 时踩了一堆坑,浪费半天时间。今天我就把自己常用的那套流程拆开讲讲,你照着走一遍,基本不会出岔子。

4.1 确认 JDK 版本

加密 SDK 对 JDK 版本有一定要求。我目前主要用的是 JDK 11(LTS),部分旧项目还在用 JDK 8。新版 SDK 已经全面拥抱 JDK 11+ 的模块化特性,所以建议你优先选 JDK 11 或 17。

推荐版本:JDK 11.0.18+ 或 JDK 17.0.6+(LTS 长期支持)。

避免使用 JDK 12/13/14 这类非 LTS 版本,它们生命周期短,容易出兼容性问题。

4.2 安装 JDK 与配置环境变量

安装过程没什么特别的,但配置 JAVA_HOME 这一步容易漏。我记得刚带团队那会儿,有个新人只配了 Path,没配 JAVA_HOME,结果 Maven 死活找不到 JDK。嗯,这里要仔细检查。

  1. 下载 JDK 安装包(Oracle 或 OpenJDK 均可)。
  2. 双击安装,记住安装路径,比如 C:\Java\jdk-11.0.18。
  3. 设置系统环境变量:
    • 新增 JAVA_HOME = C:\Java\jdk-11.0.18
    • 在 Path 中添加 %JAVA_HOME%\bin
  4. 打开命令行,输入 java -version 和 javac -version 验证。

技巧:用 where java(Windows)或 which java(Linux/Mac)确认路径是否正确。我曾经遇到两个 JDK 冲突,就是靠这个命令定位的。

4.3 选择构建工具

我个人的习惯是用 Maven 管理依赖。Gradle 也不错,但加密 SDK 官方示例大部分是用 Maven 写的,跟起来更省事。你能用 Gradle 当然也行,但要注意仓库地址和插件配置别写错。

Maven 配置示例(pom.xml)

<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<repositories>
    <repository>
        <id>our-crypto-repo</id>
        <url>https://repo.ourcompany.com/releases</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.ourcompany.crypto</groupId>
        <artifactId>crypto-sdk-java</artifactId>
        <version>2.5.0</version>
    </dependency>
</dependencies>

注意:<repositories> 部分一定要加!加密 SDK 一般不会发布到公共 Maven 中央仓库,你需要设置私有仓库地址。我曾经因为忘记加这个,项目一直报 404,排查了半小时才发现。

4.4 IDE 环境准备

我几乎只用 IntelliJ IDEA,社区版足够了。Eclipse 用户也可以,但插件生态差一些。你如果是 IDEA,记得安装这几个插件:

  • Lombok(如果 SDK 用了 @Data 注解)
  • CheckStyle(保持代码规范)
  • Git Integration(IDE 自带)

导入 Maven 项目时,选 File → New → Project from Existing Sources,然后选中你的 pom.xml,IDEA 会自动下载依赖。

个人经验:我第一次导入加密 SDK 时,IDEA 一直报“依赖未解析”。后来发现是 IDEA 的 Maven 仓库索引太久,手动点一下 Reimport 按钮就好了。

4.5 验证 SDK 是否正确引入

写个最简单的 main 方法,跑一下对称加密流程。代码不长,但能快速验证整个环境链是否通了。

import com.ourcompany.crypto.AES;
import com.ourcompany.crypto.CryptoException;

public class EnvCheck {
    public static void main(String[] args) throws CryptoException {
        String plainText = "Hello, Crypto SDK!";
        String key = "0123456789abcdef"; // 16字节密钥

        // 加密
        String cipherText = AES.encrypt(plainText, key);
        System.out.println("加密结果: " + cipherText);

        // 解密
        String decrypted = AES.decrypt(cipherText, key);
        System.out.println("解密结果: " + decrypted);

        // 校验
        boolean ok = plainText.equals(decrypted);
        System.out.println("验证通过? " + ok);
    }
}

如果你的控制台打印出“验证通过? true”,那恭喜你——开发环境已经跑通了。如果报异常,大概率是密钥长度不对或者 SDK 版本冲突。

4.6 常见问题与避坑

现象原因解决方案
UnsupportedClassVersionError JDK 版本太低,编译版本高于运行版本 统一 JDK 版本,至少 11
NoClassDefFoundError 依赖未下载或冲突 检查 Maven 仓库配置,清理本地仓库缓存
InvalidKeyException 密钥长度不符合算法要求 检查 SDK 文档,确保密钥字节数正确
编译时乱码 项目编码不一致 pom.xml 中设置 UTF-8,IDE 也保持一致

避坑指南:我曾经遇到一个诡异问题——encrypt 方法在本地正常,在 Linux 服务器上却报 SecurityException。排查了两天才发现,服务器 JDK 没有安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files。JDK 8 需要手动替换,JDK 11+ 默认已经集成,但如果你还在用 JDK 8,别忘了这一步骤。

4.7 一张图小结:Java 环境搭建流程

下面这个流程图把刚才讲的核心步骤连起来了,你可以照着它一步一步检查,免得漏掉任何一个环节。

Java 加密 SDK 开发环境搭建流程 JDK 安装 版本 11 / 17 配置 JAVA_HOME Path 添加 %JAVA_HOME%\bin Maven / Gradle 配置 pom.xml IntelliJ IDEA 导入 Maven 项目 添加 SDK 依赖 私有仓库地址 运行测试代码 加密 → 解密 → 校验 ⚠️ 关键点 - 先确认 JDK 版本 ≥ 11
- Maven 仓库必须包含私有镜像地址
- 运行测试前检查 JCE 策略文件(JDK 8 需要)

整个流程走下来,你基本就有了一个能跑加密 SDK 的 Java 开发环境。后面章节我们会在这个环境里写具体的加密解密代码。