&引用;比较法违反其总合同&引用;尝试安装Eclipse插件时

&引用;比较法违反其总合同&引用;尝试安装Eclipse插件时,eclipse,eclipse-plugin,eclipse-pdt,Eclipse,Eclipse Plugin,Eclipse Pdt,我有以下系统: $ cat /etc/redhat-release Scientific Linux release 6.1 (Carbon) $ uname -a Linux wcmisdlin02.uftmasterad.org 2.6.32-279.9.1.el6.x86_64 #1 SMP Tue Sep 25 14:55:44 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux $ 我有以下的软件包 $ rpm -qa | grep ^eclipse

我有以下系统:

$ cat /etc/redhat-release 
Scientific Linux release 6.1 (Carbon)
$ uname -a
Linux wcmisdlin02.uftmasterad.org 2.6.32-279.9.1.el6.x86_64 #1 SMP Tue Sep 25 14:55:44 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
$ 
我有以下的软件包

$ rpm -qa | grep ^eclipse
eclipse-emf-2.6.0-1.el6.x86_64
eclipse-svnkit-1.3.0-3.el6.x86_64
eclipse-swt-3.6.1-6.13.el6.x86_64
eclipse-rcp-3.6.1-6.13.el6.x86_64
eclipse-rse-3.2-1.el6.x86_64
eclipse-jdt-3.6.1-6.13.el6.x86_64
eclipse-pde-3.6.1-6.13.el6.x86_64
eclipse-platform-3.6.1-6.13.el6.x86_64
eclipse-subclipse-1.6.5-6.el6.x86_64
$
每当我试图通过Eclipse安装PDT时,都会出现以下错误:

An error occurred while collecting items to be installed
session context was:(profile=PlatformProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Comparison method violates its general contract!
Comparison method violates its general contract!
*更新*

$ rpm -qa | grep ^java
java-1.6.0-openjdk-javadoc-1.6.0.0-1.49.1.11.4.el6_3.x86_64
java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64
java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
java-1.6.0-openjdk-devel-1.6.0.0-1.49.1.11.4.el6_3.x86_64
java_cup-0.10k-5.el6.x86_64
java-1.7.0-openjdk-1.7.0.5-2.2.1.el6_3.3.x86_64
$ 
我还发现:

$ sudo grep java-1.7.0 /var/log/yum.log
Sep 21 12:46:33 Installed: 1:java-1.7.0-openjdk-1.7.0.5-2.2.1.el6_3.3.x86_64
$ 
这可能是我几个月前遇到的问题。这个问题与JDK 7中的
Arrays.sort()
的新实现有关

如果是这个bug,您需要安装一个更新版本的Eclipse,因为这个bug会阻止您(从Eclipse内部)进行更新


或者,您可以尝试使用系统属性
java.util.Arrays.useLegacyMergeSort=true
启动Eclipse,然后更新Eclipse平台。

Eclipse是通过软件包安装的,我在使用分词软件包之前就已经安装过。此错误仅在java 7上运行时出现。也许上次不是这样。你有JDK6和JDK7。Eclipse运行在哪一个上?我怎么能看到?或者有一种方法可以强制eclipse使用6而不是7来测试它?不确定这在linux上是否相同,但在Windows上,您可以将
-vm/path/to/javaw.exe
添加到
eclipse.ini
文件中以选择vm。见: