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

Windows11下Spring Boot+DJL加载PyTorch模型遇pytorch_jni.dll异常求助

解决DJL加载PyTorch模型时pytorch_jni.dll为空的问题

可能的原因及对应解决方案

1. 依赖拉取不完整

DJL的PyTorch依赖会自动下载对应平台的原生库,但网络波动或镜像源配置问题可能导致下载失败,生成空的pytorch_jni.dll。

  • Maven用户:
    • 强制重新拉取依赖,执行命令:
      mvn clean install -U
      
    • 检查pom.xml中DJL依赖配置,确保包含PyTorch引擎和平台依赖:
      <dependencies>
          <dependency>
              <groupId>ai.djl.pytorch</groupId>
              <artifactId>pytorch-engine</artifactId>
              <version>0.25.0</version> <!-- 使用最新稳定版 -->
          </dependency>
          <dependency>
              <groupId>ai.djl.pytorch</groupId>
              <artifactId>pytorch-native-auto</artifactId>
              <version>2.1.0</version> <!-- 匹配PyTorch版本 -->
              <scope>runtime</scope>
          </dependency>
      </dependencies>
      
  • Gradle用户:
    • 执行命令刷新依赖:
      ./gradlew clean build --refresh-dependencies
      
    • 确保build.gradle中依赖配置正确:
      dependencies {
          implementation 'ai.djl.pytorch:pytorch-engine:0.25.0'
          runtimeOnly 'ai.djl.pytorch:pytorch-native-auto:2.1.0'
      }
      

2. 平台架构不匹配

Windows系统分32位和64位,DJL默认下载对应JVM架构的原生库,若JVM是32位却拉取了64位库,会导致文件损坏或为空。

  • 检查JVM架构:执行命令
    java -d64
    
    若提示“此Java虚拟机不支持64位模式”,需切换为64位JDK。
  • 手动指定64位Windows平台依赖:
    Maven:
    <dependency>
        <groupId>ai.djl.pytorch</groupId>
        <artifactId>pytorch-native-win-x86_64</artifactId>
        <version>2.1.0</version>
        <scope>runtime</scope>
    </dependency>
    
    Gradle:
    runtimeOnly 'ai.djl.pytorch:pytorch-native-win-x86_64:2.1.0'
    

3. Spring Boot打包配置问题

Spring Boot默认打包插件可能未正确处理DJL的原生库,导致空文件被打包。

  • Maven配置Spring Boot插件,确保原生库被正确包含:
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  • Gradle添加配置:
    bootJar {
        requiresUnpack '**/*.dll'
    }
    

4. 手动替换原生库

若自动下载始终失败,手动获取正确的pytorch_jni.dll:

  • 找到对应版本的pytorch-native-win-x86_64包,提取其中非空的pytorch_jni.dll文件。
  • 将文件替换到项目target/classes/lib目录,或直接放到java.library.path指定路径(如C:\Windows\System32或项目根目录lib文件夹)。

验证步骤

  1. 执行依赖刷新后,检查target/classes/lib下的pytorch_jni.dll文件大小,确认不为0KB。
  2. 启动Spring Boot应用,观察是否仍出现UnsatisfiedLinkError错误。
  3. 若问题持续,开启DJL DEBUG级别日志,查看原生库加载的详细过程,定位具体失败原因。

内容的提问来源于stack exchange,提问作者Daria Mihăilă

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:47:00