【问题标题】:Error when trying to update Eclipse尝试更新 Eclipse 时出错
【发布时间】:2012-09-29 20:06:48
【问题描述】:

我在尝试更新 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) 在 java.util.ComparableTimSort.sort(ComparableTimSort.java:146) 在 java.util.Arrays.sort(Arrays.java:472) 在 org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.hasValidMirror(MirrorSelector.java:319) 在 org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:577) 在 org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:680) 在 org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:260) 在 org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:235) 在 org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:191) 在 org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:122) 在 org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:664) 在 org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

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

谢谢

【问题讨论】:

    标签: java eclipse updates


    【解决方案1】:

    这发生在我之前,现在我有 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

    【讨论】:

    • 您好,谢谢,我已经删除了我的旧 Eclipse 并尝试下载新版本,问题已经解决!非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多