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

Gradle项目(Micronaut应用)中添加DLL至Jib容器的方法咨询

JNI DLL文件加入Jib容器镜像的实现思路

1. 先把DLL放到项目里

在项目根目录建个专门的文件夹,比如src/main/native-libs,把你的DLL文件丢进去,这样Gradle能轻易找到它。

2. 配置Gradle的Jib插件

修改build.gradle(或build.gradle.kts)里的Jib配置,把本地的DLL复制到容器指定目录,同时告诉JVM去哪里找这些库:

Groovy写法:

jib {
    container {
        // 这里可以加你的其他容器配置,比如端口、启动参数
        jvmArgs = ['-Djava.library.path=/app/native-libs']
    }
    extraDirectories {
        paths {
            path {
                from = file("src/main/native-libs")
                into = "/app/native-libs"
            }
        }
    }
}

Kotlin写法:

jib {
    container {
        jvmArgs = listOf("-Djava.library.path=/app/native-libs")
    }
    extraDirectories {
        paths {
            create("nativeLibs") {
                from = file("src/main/native-libs")
                into = "/app/native-libs"
            }
        }
    }
}
  • extraDirectories是Jib专门用来复制额外文件到容器的配置,from指定本地文件夹路径,into是容器里的目标位置。
  • jvmArgs里的java.library.path是关键,告诉JVM这个路径下有JNI需要的本地库。

3. 验证是否配置成功

  • 构建镜像后,运行容器时可以进入容器查看/app/native-libs目录,确认DLL已经在里面。
  • 也可以在应用代码里打印System.getProperty("java.library.path"),看看路径是不是设置对了;如果加载DLL报错,优先检查路径和文件是否齐全。

要注意的点

  • DLL是Windows平台的库,所以你的容器基础镜像必须是Windows镜像,用Linux容器的话跑不起来,得换对应平台的.so文件。
  • 如果你的DLL还依赖其他DLL文件,一定要把这些依赖也一起复制到容器的同一个目录里,不然会加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:31:02