2013-05-14 50 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

相關問題