Ошибка компиляции во FlashDevelop из-за Java

Недавно столкнулся с внезапной ошибкой компиляции AS3 проекта во FlashDevelop-е. Компилил себе нормально и вдруг в очередной раз выскакивают такие строчки:

Error: Comparison method violates its general contract!

Build halted with errors (fcsh).

Как мне удалось это исправить — читаем дальше…

Вот такие дела предающие дискомфортность. Причём при перезапуске FlashDevelop-а первая компиляция проходит хорошо, а последующие с этой же ошибкой.

Выяснил, что всё дело в нововведениях в последней Java версии 7 и что на Java 6 компилятор будет вести себя послушно.

Нашёл заметку о том, что помогает Shift+F8, перед самой компиляцией(F8 или F5). Да, правда помогает, но тыкать постоянно 3 клавиши вместо одной меня не устраивало и я начал копать.

Сначала дал слабину — откатил Java на 6-ю версию, всё стало хорошо, при этом не надо было даже переустанавливать FD.

НО! Запись на моём любимом screenr.com перестала запускаться, т.к. ей постоянно необходима последняя Java. А я так люблю этот сервис… Самый удобный сервис, когда надо по быстрому записать небольшой видос)

И я начал разбираться дальше!

В результате был найден следующий способ:

сначала ставим Java6 в одну папку, потом ставим Java7 в другую папку, а потом ищем в папке FlexSDK, такой вот файл:

…\FlashDevelop\Tools\flexsdk\bin\jvm.config

Открываем его текстовиком и правим некоторые строки, чтобы получилось нечто следующее:

прописываем путь куда вы установили Java6:

java.home=c:\Program Files\Java\jre6\

и прописываем путь до папки lib в Java6:

java.library.path=c:\Program Files\Java\jre6\lib\

Теперь перезапускам FD, если не помогло, то можно и комп перезагрузить и проверяем компиляцию — всё должно работать без вышеупомянутой ошибки!

Вот и всё!)

UPD:

В дальнейшем, при автоматической переустановке явы проблема иногда возвращалась, а так же я нашёл другу возможную причину: кривая компиляция библиотеки .swc, которую вы подключаете в вашем проекте в FD. Кривая в смысле с какими-либо касяками-недочётами, которые должны исправляться простой перекомпиляцией (перепубликацией). Для проверки этой причины можно просто отключить все .swc от проекта и подряд по нажимать F8. Если ошибка перестанет появляться, то причина в библиотеках.

Так же замечал, что причина этой ошибки может быть в русских наименованиях элементов в библиотеке .swc.