我在尝试更新 Eclipse 时遇到错误!
这是错误日志 期间发生内部错误:“安装下载 0”
java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392) at 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.getArtifact(SimpleArtifactRepository.java:680) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:260) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:235) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:191) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:122) at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:664) at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
有人知道如何解决这个问题吗?
谢谢
最佳答案
这之前发生在我身上,现在我有 Eclipse Juno 版本,我没有遇到这样的问题。
可能的解决方法:
出现此错误的原因是 Eclipse 与 JDK >= 1.7 一起使用时存在一个小错误
要解决这个问题,您可以将 JDK 1.7 替换为 JDK 1.6(当然更改环境变量、PATH 等)
(或)
退出/关闭任何 Activity 的 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 算法
关于java - 尝试更新 Eclipse 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12651953/