# 常见问题

# 1、UnknownHostException

java.net.UnknownHostException: resources.djl.ai

检查网络是否有问题,如果未手动指定模型路径,需要联网使用

# 2、windows系统 Can't find dependent libraries

java.lang.UnsatisfiedLinkError: C:\Users\xxx\AppData\Local\Temp\smartjavaai-native-libs5875298554139322524\tennis.dll: Can't find dependent libraries

检查网络是否有问题,如果未手动指定模型路径,需要联网使用 一般是因为电脑依赖库缺失,需要安装依赖库,可以点击安装运行库合集 (opens new window)

# 3、windows使用gpu报错:Can't find dependent libraries

Caused by: java.lang.UnsatisfiedLinkError: D:\Software\.djl.ai\pytorch\2.4.0-cu124-win-x86_64\torch_cuda.dll: Can't find dependent libraries

该问题通常是由于环境变量 PATH 配置不当所导致

# 解决方法:

查看GPU使用指南

# 4、报错:找不到GLIBCXX_3.4.20

Caused by: java.lang.UnsatisfiedLinkError: /root/smartjavaai_cache/pytorch/2.5.1-cpu-linux-x86_64/libc10.so: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/smartjavaai_cache/pytorch/2.5.1-cpu-linux-x86_64/libc10.so)

报错原因:因为linux系统版本过低,需要更新系统或者安装GLIBCXX_3.4.20依赖库,常见于centos7系统,建议使用ubuntu24.04或者其他内核版本高的linux系统。

# 5、打包后运行jar包,报错:ModelZoo not found in classpath: ai.djl.pytorch

Exception in thread "main" java.lang.IllegalArgumentException: ModelZoo not found in classpath: ai.djl.pytorch

报错原因:由于普通打包方式会导致文件丢失

解决方法:使用maven shade插件打包,mainClass需替换为你的mainClass

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.5.0</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals><goal>shade</goal></goals>
          <configuration>
            <createDependencyReducedPom>false</createDependencyReducedPom>
            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <mainClass>${exec.mainClass}</mainClass>
              </transformer>
            </transformers>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

# 6、日志jar冲突

SmartJavaAI 项目中默认引入了 slf4j-simple 作为日志实现。如果你的项目中已经使用了其他日志框架(如 logback-classic 或 log4j 等),则可能会出现 SLF4J 绑定冲突 的错误提示

解决方案:建议在你的项目中排除 SmartJavaAI 模块中默认引入的 slf4j-simple

<exclusions>
  <exclusion>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
  </exclusion>
</exclusions>

# 7、为什么首次运行会比较慢?

由于 DJL 在使用 PyTorch 模型时会进行一次性的“预热”过程(JIT 图优化),首次执行推理时会稍慢。 该过程会根据输入自动构建优化后的执行图,从而显著提升后续推理性能。

DJL官方介绍 (opens new window)

# 8、Can't load library: libwinpthread-1.dll

报错详情:

java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\Administrator\smartjavaai_cache\tokenizers\0.21.0-0.32.0-cpu-win-x86_64\libwinpthread-1.dll

当然可以,下面是简洁版但不改变原意的优化说明:


# 问题原因:

虽然你没有使用显卡,但 DJL 代码中会调用 CudaUtils.getComputeCapability(0) 来获取显卡的计算能力。 如果显卡是 8.6,DJL 就会把 Hugging Face Transformers 依赖库解压到:

0.21.0-0.32.0-cpu-win-x86_64/86/

但运行时有时会从:

0.21.0-0.32.0-cpu-win-x86_64/

目录下查找依赖,导致报错。


# ✅ 解决方法:

86 文件夹里的所有 .dll 文件复制到它的上级目录(即 0.21.0-0.32.0-cpu-win-x86_64/)。 注意不要删除原来的 86 文件夹,以防后续仍需要用到。


# 9、failed finding central directory

ai.djl.engine.EngineException: PytorchStreamReader failed reading zip archive: failed finding central directory

问题原因:模型文件不完整或者损坏

解决方法:删除模型文件重新下载