You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

javac编译Java报错:org.springframework.security.crypto.bcrypt包不存在

问题描述

我尝试编译以下Java代码:

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.security.SecureRandom;

public class BCrypt {
    public static void main(String[] args) {
    int strength = 10;
        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(strength, new SecureRandom());
        System.out.println(bCryptPasswordEncoder.encode(args[0]));
    }
}

使用如下命令执行编译:

javac -cp spring-security-crypto-5.5.1.jar BCrypt.java

执行后得到如下报错:

BCrypt.java:1: error: package org.springframework.security.crypto.bcrypt does not exist

当前使用的Java环境信息:

openjdk version "11.0.12" 2021-07-20 OpenJDK Runtime Environment
Temurin-11.0.12+7 (build 11.0.12+7) OpenJDK 64-Bit Server VM
Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)

问题原因

报错核心原因是编译时classpath仅引入了spring-security-crypto-5.5.1.jar,但该模块存在强制传递依赖:Spring Security加密模块必须依赖Spring核心包spring-core才能正常工作,单独引入crypto包时JVM无法加载关联类,就会抛出包不存在的错误。

修复方法

手动引入依赖方式

  • 下载与当前Spring Security版本匹配的spring-core jar包:5.5.x系列Spring Security配套兼容5.3.x系列Spring Core,选择spring-core-5.3.12.jar即可,将该jar与已有的spring-security-crypto-5.5.1.jar、BCrypt.java放在同一目录。
  • 编译时将所有依赖加入classpath,注意不同操作系统classpath分隔符有区别:
    • Linux/macOS用冒号:分隔路径,执行编译命令:
      javac -cp "spring-security-crypto-5.5.1.jar:spring-core-5.3.12.jar" BCrypt.java
      
    • Windows用分号;分隔路径,执行编译命令:
      javac -cp "spring-security-crypto-5.5.1.jar;spring-core-5.3.12.jar" BCrypt.java
      
  • 运行时需要将当前目录(.,代表编译生成的BCrypt.class所在路径)和所有依赖jar都加入classpath,否则会触发运行时类找不到错误:
    • Linux/macOS运行命令:
      java -cp ".:spring-security-crypto-5.5.1.jar:spring-core-5.3.12.jar" BCrypt 待加密明文
      
    • Windows运行命令:
      java -cp ".;spring-security-crypto-5.5.1.jar;spring-core-5.3.12.jar" BCrypt 待加密明文
      

构建工具自动管理依赖方式(推荐)

如果不想手动查找jar、处理传递依赖,直接用Maven或Gradle构建项目即可,仅需声明spring-security-crypto依赖,构建工具会自动拉取所有关联的传递依赖,从根源上避免缺包问题。


内容的提问来源于stack exchange,提问作者ekkis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:39:50