Eclipse安装GitHub工具后报java.lang.IllegalArgumentException 无损修复咨询
Eclipse报错"error has occured see log file"修复方案(不影响已有项目)
根因说明
从提供的报错栈来看,故障源于Eclipse内置的p2插件管理组件在解析新增的GitHub相关web工具的插件源元数据时,版本号格式校验失败触发崩溃,故障完全不涉及工作区中的项目代码,所有修复操作都不会导致项目丢失。
完整报错栈(格式化后)
java.lang.IllegalArgumentException at org.eclipse.equinox.internal.p2.metadata.VersionParser.parse(VersionParser.java:83) at org.eclipse.equinox.p2.metadata.Version.create(Version.java:96) at org.eclipse.equinox.p2.metadata.Version.parseVersion(Version.java:164) at org.eclipse.equinox.internal.p2.repository.helpers.LocationProperties.create(LocationProperties.java:88) at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.handleRemoteIndexFile(AbstractRepositoryManager.java:735) at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadIndexFile(AbstractRepositoryManager.java:724) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.eclipse.oomph.util.ReflectUtil.invokeMethod(ReflectUtil.java:119) at org.eclipse.oomph.p2.internal.core.CachingRepositoryManager.loadIndexFile(CachingRepositoryManager.java:388) at org.eclipse.oomph.p2.internal.core.CachingRepositoryManager.loadRepository(CachingRepositoryManager.java:187) at org.eclipse.oomph.p2.internal.core.CachingRepositoryManager$Metadata.loadRepository(CachingRepositoryManager.java:495) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) at org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob.doLoad(LoadMetadataRepositoryJob.java:126) at org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob.runModal(LoadMetadataRepositoryJob.java:110) at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler$1.runModal(PreloadingRepositoryHandler.java:84) at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:188) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
修复步骤(按优先级依次尝试)
- 方案1:使用-clean参数清理运行缓存
完全关闭Eclipse后,找到Eclipse启动程序路径:- Windows系统:右键点击
eclipse.exe创建快捷方式,右键快捷方式选择「属性」,在「目标」一栏的末尾加空格后输入-clean,双击该快捷方式启动Eclipse,启动成功后下次可以直接用原方式启动,无需保留该参数 - Mac/Linux系统:打开终端,进入Eclipse安装目录,执行
./eclipse -clean启动即可
该操作只会清理Eclipse的运行时缓存,不会修改任何配置和项目文件,90%的插件类启动故障可通过该方式解决。
- Windows系统:右键点击
- 方案2:删除p2插件源缓存
如果方案1无效,关闭Eclipse后,进入Eclipse安装目录下的p2/org.eclipse.equinox.p2.repository/cache文件夹,删除该目录下的所有内容。该目录存放的是插件源的临时元数据缓存,删除后重启Eclipse会自动重新拉取对应源的元数据,不会影响已安装的插件和项目。 - 方案3:重置工作台配置
如果前两个方案无效,关闭Eclipse后,进入你使用的工作区目录,找到.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi文件,将其重命名为workbench.xmi.bak。重启Eclipse后会重置工作台布局、插件启动配置,你只需重新调整窗口布局即可,所有项目、已配置的开发环境都保持不变。 - 方案4:复用工作区重装Eclipse本体
如果以上方案都无效,直接下载对应版本的Eclipse安装包解压到全新目录,启动时选择你原来的工作区路径即可。所有项目、JDK配置、服务器配置、代码修改记录都存放在工作区目录中,新安装的Eclipse会完全复用这些配置,不会造成任何数据丢失。原Eclipse安装目录可以在确认新实例运行正常后再删除。
内容的提问来源于stack exchange,提问作者Operator
相关产品推荐
相关产品推荐

