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

Eclipse Photon 2018中Maven项目TestNG运行JNI错误及版本兼容问题

解决Eclipse Photon中Maven项目TestNG执行UnsupportedClassVersionError问题

问题本质

控制台抛出的 UnsupportedClassVersionError: org/testng/TestNGException 是因为POI 5.0.0强制要求JDK11+(类文件版本55.0对应JDK11),但你的项目仍绑定JRE8(仅支持到版本52.0)。核心障碍是Eclipse未识别已安装的JDK11,导致无法切换项目的JRE系统库。


步骤1:让Eclipse识别JDK11

你已安装JDK11.0.10但Eclipse未加载,手动添加:

  • 打开Eclipse,依次选 Window > Preferences > Java > Installed JREs
  • 点击Add,选Standard VM后点Next
  • 在JRE home中选择JDK11的安装目录(例:C:\Program Files\Java\jdk-11.0.10),Eclipse会自动填充名称
  • 勾选新添加的JDK11,点击Apply and Close

步骤2:切换项目的JRE系统库

现在可以替换原有的JRE8:

  • 右键项目 > Build Path > Configure Build Path
  • 在Libraries标签下,选中JRE System Library [JavaSE-1.8],点击Remove
  • 点击Add Library > JRE System Library > Next
  • 选择Workspace default JRE (jdk-11.0.10)或手动选中刚添加的JDK11,点Finish
  • 确认后点击Apply and Close

步骤3:修正Maven编译配置(必做,防止自动回退)

Maven会强制遵循pom.xml的编译规则,必须指定JDK11参数,否则Eclipse的Maven插件会自动重置JRE:
在pom.xml的<build>节点下添加以下插件配置:

<build>
    <plugins>
        <!-- 指定JDK11编译版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source>
                <target>11</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- 解决JDK9+缺失JAXB模块的问题(Selenium 3.x依赖) -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <argLine>--add-modules java.xml.bind</argLine>
            </configuration>
        </plugin>
    </plugins>
</build>

步骤4:更新Maven项目并验证

  • 右键项目 > Maven > Update Project,勾选Force Update of Snapshots/Releases,点击OK
  • 重新运行TestNG测试类,版本不兼容错误即可消除

额外优化建议

  • Eclipse Photon支持JDK11,但建议将TestNG从6.14.3升级到7.6.1+,提升兼容性:
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.6.1</version>
    <scope>test</scope>
</dependency>
  • 若TestNG插件版本过旧,可通过Help > Eclipse Marketplace搜索更新TestNG插件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:45:22