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

如何将jce_policies8 jar添加到classpath并提交变更到Git

问题根因说明

你通过IntelliJ IDEA的「项目结构(Command+;)」入口添加类路径,修改的是IDEA本地的项目配置,这类配置默认存储在项目下的.idea目录中,而.idea目录几乎都会被配置到.gitignore规则里,所以git不会检测到变更,而且这种本地配置也无法同步到AWS Docker这类线上部署环境。

正确配置步骤

1. 本地jar托管到项目内

首先在你的Spring Boot项目根目录下新建一个专门存放第三方jar的目录,比如命名为lib,把你下载的两个JCE jar包(local_policy.jar、US_export_policy.jar)放到这个lib目录下。之后把这个目录提交到git,这样所有拉取代码的环境都能拿到这两个jar包。

2. 通过构建工具配置类路径,不要直接改IDE配置

这里分别给出Maven和Gradle的配置示例:

Maven配置

在你的pom.xml里添加本地依赖,指定system范围,路径指向刚才新建的lib目录:

<dependencies>
    <!-- JCE无限制权限策略依赖 -->
    <dependency>
        <groupId>com.oracle.jce</groupId>
        <artifactId>local_policy</artifactId>
        <version>1.8</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/lib/local_policy.jar</systemPath>
    </dependency>
    <dependency>
        <groupId>com.oracle.jce</groupId>
        <artifactId>US_export_policy</artifactId>
        <version>1.8</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/lib/US_export_policy.jar</systemPath>
    </dependency>
    <!-- 其他原有依赖 -->
</dependencies>

如果你的Spring Boot打包要把这两个jar打到最终的可执行jar里,需要在spring-boot-maven-plugin配置里加上<includeSystemScope>true</includeSystemScope>:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <includeSystemScope>true</includeSystemScope>
    </configuration>
</plugin>

Gradle配置

在build.gradle里添加本地仓库指向lib目录,再引入依赖:

repositories {
    flatDir {
        dirs 'lib'
    }
    // 其他原有仓库
}

dependencies {
    implementation name: 'local_policy'
    implementation name: 'US_export_policy'
    // 其他原有依赖
}

3. 适配Docker部署环境

你部署在AWS Docker容器,不需要额外改Dockerfile的classpath配置,只要你按上面的步骤配置了构建工具,打包出来的Spring Boot可执行jar已经自带了这两个依赖,直接正常构建镜像运行即可。如果你的Docker镜像是单独安装JDK运行jar包的,也可以选择把这两个jar包直接放到JDK的jre/lib/security目录下覆盖原有文件,这个方案也能解决问题,在Dockerfile里加对应COPY指令即可。

4. 提交变更到Git

做完上面的配置后,你需要提交以下文件到git:

  • 整个lib目录下的两个jar包
  • pom.xml(Maven项目)或者build.gradle(Gradle项目)
  • 如果修改了Dockerfile也需要一并提交
    此时git可以正常检测到这些变更,因为这些文件都不在.gitignore的默认忽略规则里。

可选优化:如果你的JDK版本是Java 8 Update 161及以上,JCE无限制权限策略是默认开启的,直接升级Docker镜像内的JDK版本即可省去手动引入jar包的步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 19:54:02