GraalVM Java on Truffle执行嵌入Java代码时NFIContext.getBackend空指针报错
解决方案
这个空指针异常是Espresso组件依赖缺失导致的,你只安装了Espresso本身,缺少它运行必需的Sulong(LLVM Truffle运行时)组件,所以原生函数接口(NFI)初始化时找不到对应后端直接抛出空指针。
按以下步骤处理即可:
- 安装缺失的Sulong组件
执行命令:gu install llvm - 若安装后仍报错,启动程序时添加参数指定原生后端:
java -jar --java.NativeBackend=nfi target/host-code-1.0-SNAPSHOT.jar - 可选优化:你当前使用的GraalVM 21.3.0属于较老的稳定版,该版本对Espresso依赖缺失的错误提示不完善,可升级到GraalVM 22.3+版本,相关初始化逻辑已优化,依赖缺失时会直接输出明确的提示信息,不会无理由抛出空指针。
调整后重新运行代码即可正常输出结果。
内容的提问来源于stack exchange,提问作者Nils Renaud
相关产品推荐
相关产品推荐

