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

Intellij运行Java文件报PKIX路径构建失败错误求解决

问题描述

在IntelliJ IDE中运行任意Java文件时,出现以下SSL握手错误:

22:00:17.222 [pool-6-thread-1] ERROR ingrian.internal.xml.XMLAuthToken - handshakeCompleted: SSL handshake did not complete within alloted time {}
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[?:1.8.0_351]

但执行mvn clean install时构建完全正常。已添加所有必要证书,本地Maven及Java版本信息如下:

Maven home: /usr/local/Cellar/maven/3.5.4/libexec
Java version: 1.8.0_351, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home/jre

此前IntelliJ运行正常,替换旧证书为新证书后出现该问题。已尝试下载新版本Java、IDE,清理旧缓存,但均无效。

排查与解决步骤

1. 对齐IntelliJ与Maven使用的JDK

  • 打开IntelliJ,进入File > Project Structure > Project Settings > Project,确认Project SDK和Project language level与Maven使用的JDK 1.8.0_351完全一致。
  • 进入File > Project Structure > Platform Settings > SDKs,检查该JDK的路径是否指向/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home——确保你导入的新证书是存放在这个JDK的jre/lib/security/cacerts文件中。

2. 检查Run/Debug配置的JVM参数

  • 打开对应的运行配置,查看VM options是否指定了自定义信任库路径,或者覆盖了默认的cacerts配置。如果有,确认路径指向包含新证书的信任库;如果没有,尝试手动添加参数强制使用目标JDK的信任库:
    -Djavax.net.ssl.trustStore=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home/jre/lib/security/cacerts
    -Djavax.net.ssl.trustStorePassword=changeit
    
    (默认密码为changeit,若修改过请替换为实际密码)

3. 同步IntelliJ的Maven配置

  • 进入File > Settings > Build, Execution, Deployment > Build Tools > Maven,确认Maven home directory设置为/usr/local/Cellar/maven/3.5.4/libexec;切换到Runner选项卡,确保JRE选择的是与Maven一致的JDK 1.8.0_351。

4. 彻底清理IDE缓存与项目文件

  • 执行File > Invalidate Caches...,选择Invalidate and Restart,重启IDE完成缓存清理。
  • 删除项目根目录下的.idea文件夹和target文件夹,重新导入项目。

5. 验证证书导入有效性

  • 使用命令确认新证书已正确导入目标JDK的信任库:
    keytool -list -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home/jre/lib/security/cacerts -alias [你的证书别名]
    
    如果未找到证书,重新执行导入命令:
    keytool -import -trustcacerts -alias [你的证书别名] -file [证书文件路径] -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home/jre/lib/security/cacerts
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:40:26