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

使用PMML4S加载Sklearn模型时遇模块名称无效错误求助

问题:PMML4S导入时模块名称无效错误

我正尝试使用PMML4S工具,将从Sklearn导出的XML格式模型加载到Java项目中进行预测,操作时参考了一篇教程。但运行时出现错误:"Package 'org.pmml4s.model' is declared in module with an invalid name ('pmml4s.2.10')"。使用IntelliJ作为开发IDE,以下是报错的导入语句及项目依赖配置:

报错位置

import org.pmml4s.model.Model;

项目依赖配置

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>18.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>18.0.2</version>
    </dependency>

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.pmml4s</groupId>
        <artifactId>pmml4s_2.10</artifactId>
        <version>0.9.16</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.36</version>
    </dependency>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>doctor</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.9</version>
    </dependency>
    <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>6.0.0</version>
    </dependency>

</dependencies>

解决方案

错误核心原因是你引入的PMML4S依赖是Scala 2.10版本的适配包(pmml4s_2.10),Java模块系统不允许模块名称包含.这类特殊字符,导致模块声明无效。

解决步骤:

  1. 替换PMML4S依赖为Java兼容的版本,或选择更高Scala版本的包(确保版本后缀符合模块命名规则)。推荐替换为pmml4s_2.13(可根据Maven仓库确认最新稳定版本):
<dependency>
    <groupId>org.pmml4s</groupId>
    <artifactId>pmml4s_2.13</artifactId>
    <version>0.9.16</version> <!-- 或最新稳定版本 -->
</dependency>
  1. 执行Maven的clean和compile命令,刷新IntelliJ项目依赖后重新运行即可。

如果不需要Scala相关依赖,也可以检查是否存在纯Java版本的PMML4S包,从根源避免版本后缀带来的命名问题。

内容的提问来源于stack exchange,提问作者Hamza Kamran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:54:23