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

Eclipse 2020-06版本插件安装失败,求非升级类解决方案

问题:Eclipse 2020-06安装插件失败(签名算法不兼容)

因开发软件兼容性要求,必须使用Eclipse IDE 2020-06版本,但该版本搭载的旧版equinox框架不支持当前多数插件使用的SHA-256withRSA签名算法(对应OID 1.2.840.113549.1.1.11),导致插件安装失败。

错误信息

An error occurred while collecting items to be installed
session context was:(profile=epp.package.rcp, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Problems downloading artifact: osgi.bundle,org.sonarlint.eclipse.cdt,7.8.0.63129.
Error reading signed content:C:\Users\me~1\AppData\Local\Temp\signatureFile3792878232785362905.jar
An error occurred while processing the signatures for the file: C:\Users\me~1\AppData\Local\Temp\signatureFile3792878232785362905.jar

日志错误详情

!SUBENTRY 1 org.eclipse.equinox.p2.artifact.repository 4 0 2023-03-24 11:50:21.996
!MESSAGE Problems downloading artifact: org.eclipse.update.feature,org.sonarlint.eclipse.feature,7.8.0.63129.
!SUBENTRY 2 org.eclipse.equinox.p2.artifact.repository 4 2 2023-03-24 11:50:21.996
!MESSAGE Error reading signed content:C:\Users\me~1\AppData\Local\Temp\signatureFile4976703525857637395.jar
!STACK 0
java.security.NoSuchAlgorithmException: An error occurred while processing the signatures for the file: C:\Users\me~1\AppData\Local\Temp\signatureFile4976703525857637395.jar
    at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:231)
    at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verifyContent(SignatureVerifier.java:84)
    at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verify(SignatureVerifier.java:66)
    at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.close(SignatureVerifier.java:115)
    at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep.close(ProcessingStep.java:92)
    at org.eclipse.equinox.internal.p2.artifact.processors.checksum.MessageDigestProcessingStep.close(MessageDigestProcessingStep.java:58)
    at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep.close(ProcessingStep.java:92)
    at org.eclipse.equinox.internal.p2.artifact.processors.checksum.MessageDigestProcessingStep.close(MessageDigestProcessingStep.java:58)
    at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep.close(ProcessingStep.java:92)
    at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ZipVerifierStep.close(ZipVerifierStep.java:48)
    at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.reportStatus(SimpleArtifactRepository.java:1250)
    at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:645)
    at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:776)
    at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:319)
    at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:289)
    at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:225)
    at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:155)
    at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:759)
    at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:64)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.security.NoSuchAlgorithmException: No algorithm found for 1.2.840.113549.1.1.11
    at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.findEncryption(PKCS7Processor.java:95)
    at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.processSignerInfos(PKCS7Processor.java:364)
    at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.<init>(PKCS7Processor.java:172)
    at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.processSigner(SignatureBlockProcessor.java:109)
    at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.process(SignatureBlockProcessor.java:76)
    at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.initializeSignedContent(SignedBundleFile.java:47)
    at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:223)
    ... 19 more

适配旧版本的解决办法

1. 临时禁用签名验证

  • 启动参数法:在Eclipse快捷方式的目标栏末尾添加 -Dorg.eclipse.equinox.p2.skipSignatureValidation=true(注意前面有空格),或者在启动脚本中加入该参数后启动Eclipse,跳过p2的签名校验步骤。
  • 配置文件法:找到Eclipse安装目录下的eclipse.ini文件,在文件末尾新增一行:-Dorg.eclipse.equinox.p2.skipSignatureValidation=true,保存后重启Eclipse。

2. 替换equinox核心组件(手动补丁)

从Eclipse 2021-06及以后的版本中提取支持SHA-256withRSA签名算法的org.eclipse.osgi核心JAR包,替换当前2020-06版本中的对应文件:

  1. 关闭Eclipse,找到安装目录下plugins文件夹中的org.eclipse.osgi_*.jar文件;
  2. 下载兼容版本的org.eclipse.osgi JAR(建议选择2021-06版本的同系列核心包,确保版本兼容性);
  3. 备份原文件后替换,重启Eclipse尝试安装插件。

3. 安装插件的旧版本

查找目标插件(如SonarLint)支持旧签名算法的历史版本,例如SonarLint 6.x系列,这类版本通常使用旧的签名算法,可兼容Eclipse 2020-06的equinox框架。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:33:11