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

使用r2pmml将XGBoost模型从R转PMML时遇Java可执行文件错误

问题描述

我正尝试将R中的XGBoost模型导出为PMML格式,该模型将集成到基于Java的电子病历(EMR)系统中,但始终收到以下错误:

Error in .convert(tempfile, file, converter, converter_classpath, verbose): Java is not installed, or the Java executable is not on system path (error code 127)

我使用Windows 10 64位系统,已尝试以下操作:

  • 安装jdk-21和jre-1.8并添加到环境变量路径
  • 安装Java后安装rJava
  • 从源码安装r2pmml以获取最新版本,并将R更新至最新版本
  • 在R中设置JAVA_HOME指向jre-1.8

即使运行r2pmml官方示例代码,仍会出现相同错误,示例代码如下:

library("xgboost")
library("r2pmml")
data(iris)
iris_X = iris[, -ncol(iris)]
iris_y = iris[, ncol(iris)]
# Convert from factor to integer[0, num_class]
iris_y = (as.integer(iris_y) - 1)
iris.matrix = model.matrix(~ . - 1, data = iris_X)
iris.DMatrix = xgb.DMatrix(iris.matrix, label = iris_y)
iris.fmap = as.fmap(iris.matrix)
iris.xgboost = xgboost(data = iris.DMatrix,
objective = "multi:softprob", num_class = 3, nrounds = 11)
iris.xgboost = decorate(iris.xgboost, iris.fmap,
response_name = "Species", response_levels = c("setosa", "versicolor", "virginica"))
pmmlFile = file.path(tempdir(), "Iris-XGBoost.pmml")
r2pmml(iris.xgboost, pmmlFile, compact = FALSE)
compactPmmlFile = file.path(tempdir(), "Iris-XGBoost-compact.pmml")
r2pmml(iris.xgboost, compactPmmlFile, compact = TRUE)
解决方案

1. 统一Java版本,消除多版本冲突

同时安装JDK 21和JRE 1.8会导致路径优先级冲突,r2pmml对Java 8(JDK 8/JRE 1.8)的兼容性最佳。建议:

  • 卸载JDK 21,仅保留JRE 1.8或完整的JDK 8
  • 确保系统中没有其他Java版本残留

2. 正确配置系统环境变量

  • 打开「此电脑」→「属性」→「高级系统设置」→「环境变量」
    • 在系统变量区域新建JAVA_HOME,值为JRE 1.8的安装根路径(例如C:\Program Files\Java\jre1.8.0_391)
    • 在系统变量的Path中添加%JAVA_HOME%\bin,并将该条目拖动到Path列表的最顶端,确保优先调用该版本的Java
  • 配置完成后,打开新的命令提示符窗口,输入java -version,确认输出为Java 1.8.x版本

3. 重新安装并配置rJava

  • 先卸载现有rJava包:
    remove.packages("rJava")
    
  • 以管理员身份启动R或RStudio,执行以下命令重新安装rJava:
    install.packages("rJava", type = "binary")
    
  • 验证rJava加载:运行library(rJava),无报错则配置成功

4. 重新测试r2pmml导出

关闭当前R/RStudio会话,重新打开后运行示例代码,检查是否能成功生成PMML文件

内容的提问来源于stack exchange,提问作者anubhuti mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:37:36