2009-09-23 2 views
3

Есть ли способ установить, что отчет Eclipse компилирует ошибки, такие же, как javac?Проблема компиляции Eclipse

Я натыкаюсь на несколько случаев, когда что-то работает в затмении и не может быть скомпилировано с помощью javac. Я понимаю, что eclipse использует ECJ, и его нельзя изменить, но можно ли в любом месте установить, что все, что невозможно скомпилировать с javac, является компиляционной ошибкой в ​​Eclipse? (поскольку в Eclipse есть несколько ошибок, которые вы можете сделать в Eclipse, даже если они в порядке)

Примеры от @SuiteClasses({A.class,B.class,}) (последняя запятая является проблемой), до тонких общих проблем, которые я полностью не понимаю.

+0

Я знал, что Eclipse использовал ECJ, но я не осознавал, что существует разница между тем, что он мог и не мог скомпилировать по сравнению с реализацией Sun. Я думал, что есть какой-то стандарт или спецификация, которые должны были соблюдаться. – JasCav

+0

Да, у меня возникли аналогичные проблемы, такие как OP. Практическое правило состоит в том, что Eclipse более терпимее, чем javac/ant. Поэтому компиляция кода CVS может привести к сбою сервера непрерывной интеграции с сборкой на компиляции. –

ответ

2

Eclipse использует ECJ для компиляции с помощью Java Builder, который отвечает за компиляцию и индексирование всех исходных файлов Java, чтобы упростить инкрементную компиляцию (что облегчает отправку сообщений об ошибках), кроме помощи в рефакторинге и поиске.

ECJ является стандартным и единственным компилятором, используемым Java-конструктором; используемый компилятор не может быть настроен. Его нельзя изменить. Тем не менее, вы можете попытаться добавить свой собственный конструктор, который использует скрипт сборки Ant, полагающийся на javac-компилятор Sun JDK.

+0

Не могли бы вы объяснить, как изменить eclipse на использование скрипта сборки ant или дать некоторые ссылки, связанные с ним? – Sarmun

+1

@Sarmun - попробуйте эту ссылку http://www.eclipsezone.com/eclipse/forums/t65486.html – JasCav

+0

@ Джейсон, это довольно хорошая ссылка. –

1

Вы можете сделать использование eclipse для использования ant, которое в свою очередь будет использовать javac.

0

Оба, Eclipse Compiler для Java (ECJ) и Javac, основаны на спецификации языка Java (JLS) и, следовательно, должны сообщать о тех же ошибках.

Однако бывают случаи, когда поведение отличается. Порой причиной являются ошибки, как это имеет место в любой большой части программного обеспечения, и время от времени JLS является немного неоднозначным, заставляя его интерпретироваться по-разному с помощью обоих компиляторов. Время от времени ECJ виноват, и время от времени Джавак виноват.

0

Если вы хотите, вы можете change your Eclipse preferences более ограничительным javac -эквивалентными эквивалентами. Это даст предупреждения или ошибки для того, что вы определяете при компиляции - вы даже можете определить ошибки/предупреждения для всего !!

Смежные вопросы