java - 尝试更新 Eclipse 时出错

标签 java eclipse updates

我在尝试更新 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 算法

引用:https://bugs.eclipse.org/bugs/show_bug.cgi?id=317785

关于java - 尝试更新 Eclipse 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12651953/

相关文章:

java - 如何为不同的eclipse实例分配不同的堆大小?

eclipse - GDB 和 OpenOCD - 调试结束后重置或恢复

c++ - 软件更新过程

java - 如何以在 11 之前对 2 进行排序的方式使用 java 的排序函数?

java - 如何在java中使用pdfbox进行仿射变换后获得新坐标

java - Hibernate 和 Cayenne 的比较

xcode - 为什么我没有获得xcode 9.0.1的xcode更新

java - 在 Java 中将 HCURSOR 保存到 BufferedImage

Eclipse LogCat 窗口不显示

android - 为每部手机自动更新 vcard