2

尝试更新 Eclipse 时出现错误!

这是错误日志期间发生内部错误:“安装下载 0”

java.lang.IllegalArgumentException:比较方法违反了它的一般约定!在 java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) 在 java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) 在 java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392) 在 java.util。 ComparableTimSort.sort(ComparableTimSort.java:191) at java.util.ComparableTimSort.sort(ComparableTimSort.java:146) at java.util.Arrays.sort(Arrays.java:472) at org.eclipse.equinox.internal.p2 .artifact.repository.MirrorSelector.hasValidMirror(MirrorSelector.java:319) at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:577) at org.eclipse.equinox.internal .p2.artifact.repository.simple.SimpleArtifactRepository。

有谁知道如何解决这个问题?

谢谢

4

1 回答 1

4

这以前发生在我身上,现在我有 Eclipse Juno Release,我没有遇到这样的问题。

可能的解决方法
出现此错误是因为 Eclipse 中的一个小错误与 JDK >= 1.7 一起使用
要解决它,您可以将 JDK 1.7 替换为 JDK 1.6(当然更改环境变量、PATH 等)
(或)
退出/关闭任何活动的 Eclipse IDE 窗口、进程...
然后打开 Eclipse 安装文件夹并检查“eclipse.ini”文件。
您可能会看到在启动期间启动 Eclipse IDE 所需的一些配置条目
现在将(系统属性)条目复制粘贴到“eclipse.ini”文件中的“-vmargs”下方:

-Djava.util.Arrays.useLegacyMergeSort=true

保存!
现在打开 Eclipse 并执行更新,它应该正常完成。
然后您可以从“eclipse.ini”配置文件中删除该行。

我希望即使使用 JDK 1.7,您也不会在 Eclipse Juno Release 中遇到任何此类错误。

问题的可能根本原因:JDK 1.7 中的TimSort算法

参考:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=317785

于 2012-09-29T11:35:28.463 回答