2013-05-14 72 views
1

我读过this question,但这个问题的答案并没有解决我的问题,所以不标记这个为复制错误“比较方法违反其总合同!”安装时,任何Eclipse插件

我有一个Eclipse的全新安装(Eclipse for PHP Developers/Helios Release/Build id: 20100617-1415 on Windows 7 x86)我无法安装任何插件或添加。无论是官方插件存储库还是用户提供的URL。尽管我的互联网连接速度非常快(大约2 MB/s),但安装即使是很小的插件也需要几年时间(从10-20分钟开始,以一个小时为结束),这本身很奇怪。它总是以相同的错误消息结束了:

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

错误消息总是相同的,总是提epp.package.php,不管什么插件我试图安装。所以我认为,这与Eclipse相关,而不是与插件相关的问题。

我在StackExchange上做了一些研究(很多类似的主题,但清晰的编程问题,与Java或Javascript代码中的错误有关),以及互联网中的genereal。唯一与Eclipse直接相关的东西,我发现是this forum topic说一些know bug in Eclipse。虽然这个bug被标记为resolved fixed,我试着去适应与启动Eclipse的建议快速解决方案之一:

eclipse.exe -Djava.util.Arrays.useLegacyMergeSort=true 

其他类似的来源还不清楚,是否应该有-Djava.*与否之间的空间

但是这没有产生任何效果。同样,即使从官方存储库安装小插件也会非常非常错误,并且在进度条达到20%左右时(大约20-30分钟后),整个安装过程将以上述错误结束。

我有适用于PHP和JRE的Eclipse的最新稳定版本。

我读过this question,但它让我没有接近解决方案。我看到没有什么区别,当使用java.util.Arrays.useLegacyMergeSort=true开关启动Eclipse时,我无法将核心Eclipse更新到最新版本,因为此过程也出现了同样的错误。

而这并不能解释为什么安装任何东西需要相当快速的连接非常令人难以置信的长期?

降级到JRE 6是我唯一的选择吗?

回答

2

-Djava.util.Arrays.useLegacyMergeSort=true必须位于-vmargs开关之后,因为这会将命令行从指定Eclipse启动参数更改为JVM的参数,任何-D都是。

使用此解决方案或升级至少Indigo SR2

+0

我不能使用'Indigo',因为在这个软件包组中没有PHP版本,但是我可以使用'Helios SR2'。现在,感谢你,我明白我犯了什么错误。我在'Eclipse for PHP'上使用了Google搜索,并将它带到了[SR site](http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr),而我应该安装最新版本,来自[SR2网站](http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliossr2)。再次感谢! – trejder 2013-05-15 07:11:46

+0

不是,似乎不是一个罕见的问题。 http://www.eclipse.org/forums/eclipse.tools.pdt – nitind 2013-05-15 15:16:39

相关问题