# 常见问题
# 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 图优化),首次执行推理时会稍慢。 该过程会根据输入自动构建优化后的执行图,从而显著提升后续推理性能。
# 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
问题原因:模型文件不完整或者损坏
解决方法:删除模型文件重新下载