Java компилятор GNU (GCJ) мертв?
По состоянию на октябрь 2010 года Java-компилятор GNU умер? Существуют ли какие-либо активные альтернативы (особенно для компиляции Java в нативный код)?
Решения LLVM были бы предпочтительными.
4 ответа
Вы можете использовать IKVM и опережающий компилятор Mono для генерации собственного кода.
РЕДАКТИРОВАТЬ
Внизу этой страницы есть пример.
Более актуальным вопросом было бы, было ли оно когда-либо действительно живым. Рассмотрим эти проблемы с собственного веб-сайта:
- 1.2 поддержка "еще не завершена".
- 1,3 то же самое.
- Последний раз проект обновлялся более года назад [по состоянию на октябрь 2009 года].
- В настоящее время "поддерживает большинство библиотек 1.4 плюс некоторые дополнения 1.5".
- Не поддерживает
java.nio.
- Не поддерживает
javax.naming
("Завершено, но нет поставщиков"). - Не поддерживает
javax.sql.
- Не поддерживает AWT или Swing.
- Не поддерживает локализацию через
java.text.
- Состояние
java.security
является "неизвестным". - Не проверяет разрешения в
java.lang.reflect.
- Компилирует ли это дженерики?
- Огромные куски отсутствуют в других пакетах, например, почти 50%
java.util.
- Нет аннотаций.
- Нет скриптового движка.
- Почти все
javax.xml.*
(рекурсивно) отсутствует. - нет
org.omg.CORBA.
- Практически нет
org.w3c.
- Текущее сравнение с JDK 1.6 здесь. Обратите внимание, что это, кажется, добавляет проценты, чтобы получить абсолютно бессмысленную сумму.
И обратите внимание, что он не считается "компилятором Java". Это компилятор для подмножества Java, известного как GNU CLASSPATH. Который, в свою очередь, не обновлялся с февраля 2009 года.
Если он не мертв, он, конечно, ложится.
РЕДАКТИРОВАТЬ Это мертв. GCJ больше не указан как пакет GNU. И после четырех лет нулевой активности мы имеем право предположить то же самое в отношении GNU CLASSPATH.
Одна из альтернатив для компиляции Java на нативный - это Excelsior JET.
Я не думаю, что он мертв. Это имеет только несколько важных. Что приводит к медленному развитию. Есть 3 факта, потому что сегодня только несколько важных:
- Он основан на GNU Classpath. Поскольку Java с открытым исходным кодом (OpenJDK), нет большой необходимости в другой Java с открытым исходным кодом. Это замедляет скорость разработки.
- Ява была быстрее в последние годы. Вывод GCJ не быстрее. Во многих случаях это медленнее.
- GNU Classpath имеет много несовместимости.