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

GraalVM生成DLL时graal_create_isolate返回错误码23的含义查询

GraalVM共享库调用失败:错误码23的含义及解决方法

错误码23的具体含义

GraalVM中graal_create_isolate返回的错误码23对应操作系统缺少必要的功能特性(对应GraalVM源码中的GRAAAL_ERROR_OS_FEATURE_UNAVAILABLE)。该错误通常发生在目标系统不满足GraalVM Native Image运行所需的底层系统依赖、安全特性或内存管理机制时。

环境差异分析

从测试结果来看,问题出在Windows Server 2022的不同更新版本间:

  • 成功运行的版本(20348.469、Windows 10 22H2)包含GraalVM运行所需的系统补丁或特性支持
  • 失败的版本(20348.197、20348.2227)缺少对应的底层依赖或系统特性

具体来说,GraalVM Native Image在Windows平台运行时,可能依赖特定的Windows API更新或内存保护特性(如控制流防护CFG),部分旧版Windows Server 2022更新包未包含这些内容,或系统安全策略禁用了相关特性。

解决方法

1. 升级目标系统版本

将失败的Windows Server 2022版本升级到至少20348.469或更高兼容更新版本,确保系统包含必要的底层支持。

2. 调整Native Image构建参数

若无法升级系统,可尝试在构建共享库时添加兼容参数:

  • 禁用控制流防护:
    native-image -o Sample --shared -H:WindowsDisableCFGuard=true
    
  • 强制适配目标旧版Windows:
    native-image -o Sample --shared -H:TargetOSVersion=10.0.20348.197
    

3. 检查系统安全策略

确认目标系统的以下设置:

  • 未禁用内存保护相关特性(如DEP、CFG)
  • 共享库所在目录具备完整的读写、执行权限

验证流程

按以下步骤重新构建并测试:

  1. 编译Java代码:javac Sample.java
  2. 使用调整后的参数构建共享库:native-image -o Sample --shared -H:WindowsDisableCFGuard=true
  3. 重新编译C调用程序:cl /I .\ .\main.c Sample.lib
  4. 在目标环境运行main.exe验证结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:05:05