В чем разница между default-jdk, ecj, gcj и openjdk?

23

Сегодня утром я попытался что-то установить и натолкнулся на следующее утверждение:

The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: sudo apt-get install <selected package>

В чем разница между default-jdk, ecj, gcj и openjdk?

Заранее спасибо.

rɑːdʒɑ
источник
1
Также есть Jikes.
Pacerier

Ответы:

16

по умолчанию, JRE

Это простой пакет, который зависит от openjdk-7-jre (и поэтому в основном эквивалентен openjdk-7-jre ) и default-jre-headless . Он устанавливает «Стандартную Java или Java-совместимую среду выполнения», которая является OpenJDK 7 JRE.

Этот пакет указывает на среду выполнения Java или Java-совместимую среду выполнения, рекомендованную для архитектуры i386, то есть openjdk-7-jre для i386.

Информация о
пакете Зависимости пакета (дерзкий)

СЕС

Это «автономный компилятор Java Eclipse». Установка его не приведет к установке Eclipse, так как это отдельный пакет (см. Ссылку на зависимости ниже). Он содержит «автономную версию компилятора Eclipse JDT, которая распространяется как часть Eclipse» и совместима с Java 1.3 до 1.7.

Этот пакет предоставляет автономную версию компилятора Eclipse JDT, которая распространяется как часть Eclipse. Он проходит JCK (Java Compatibility Kit) и совместим с Java 1.3, 1.4, 1.5, 1.6 и 1.7.

Информация о
пакете Зависимости пакета (дерзкий)

GCJ-4,6-JDK

(gcj-4.7-jdk такой же, но для Java 7)

Это интерфейс к компилятору GCC для нативной компиляции байт-кода Java и исходных файлов.

GCJ - это интерфейс компилятора GCC, который может компилировать исходные файлы Java (tm) и файлы байт-кода. Компилятор также может генерировать файлы классов. Другие инструменты разработки Java из classpath включены в этот пакет.

Пакет также содержит коллекцию скриптов-оберток и символических ссылок. Он предназначен для предоставления Java-SDK-подобного интерфейса для набора инструментов GCJ.

Он должен был стать альтернативой с открытым исходным кодом компилятору Oracle с закрытым исходным кодом. Похоже, что в настоящее время она в основном устарела и устарела (не обновлена), см. Ссылки ниже (особенно последние обновления на домашней странице GCJ).

Информация о пакете

Java-компилятор (GCJ) GNU мертв? - Переполнение стека на
домашней странице GCJ на gnu.org (Обновление: ссылка исчезла, но вики GCJ по-прежнему доступна

OpenJDK-6-JDK

(openjdk-7-jdk такой же, но для Java 7)

Версия платформы Java с открытым исходным кодом.
Из вики :

Основная цель проекта OpenJDK - создать реализацию платформы Java SE с открытым исходным кодом (6 и 7). Это версия Java по умолчанию, которую использует Ubuntu, и ее проще всего установить.

Резюме пакета:

OpenJDK - это среда разработки для создания приложений, апплетов и компонентов с использованием языка программирования Java.

Пакеты создаются с использованием поддержки сборки IcedTea и исправлений из проекта IcedTea.

Информация о пакете


Кроме того, в вашем вопросе не упоминалась Oracle Java (поскольку она отсутствует в репозиториях по умолчанию), для полноты которой я перечислю ниже.

Оракул-java7-инсталлятор

(имя пакета из Web Up8 PPA , распространяемого Oracle в .tar.gz)

Официальная реализация Java с закрытым исходным кодом Oracle (ранее Sun). Не размещается на официальных репо из-за проблем с лицензированием. Он был доступен Web Up8 в виде скрипта, который загружает и устанавливает его для вас.

Как установить - Web Up8

харакири
источник
означает ли это, что установка ecj установит Eclipse + Java?
r'd13
Какова цель GCJ особенно?
2013 г.
@rajagenupula Смотрите мои правки ↑↑
кири
4

У меня такая же проблема. Я обнаружил, что у них есть различия от одного к другому.

Оба default-jdkи openjdkболее похожи, так как имеют одинаковые java API-коды. Но разница в целевой платформе.

  • openjdk: самый стабильный . Он был разработан для всех платформ . Он в основном нацелен на платформы с открытым исходным кодом.

  • default-jdk: не является стабильным . Он был разработан для определенных целевых платформ . Он в основном нацелен на закрытые платформы. (Позднее был доступен для открытого исходного кода).

Но другие совершенно разные: они просто компиляторы . Они, как было известно, пришли потому, что в начале Java не была доступна для Open-Source. Только такие компиляторы были выпущены для таких вещей, как Eclipse.

  • gcj -jdk: (компилятор GNU для Java). Это компилятор для Java в GNU. (Используется Java)

  • ecj: (Eclipse Java Compiler) - это компилятор Java, используемый Eclipse.

Этот ecj не является ECJ, который является Java Evolutionary Computation Toolkit


источник
Спасибо, что заглянули, пожалуйста, посмотрите на вышеупомянутые комментарии, которые я сделал на ответ коллеге, и попробуйте решить их, пожалуйста.
2013 г.