Яка різниця між 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?

Заздалегідь спасибі.


1
Також є Джикс.
Pacerier

Відповіді:


16

default-jre

Це простий пакет, який залежить від openjdk-7-jre (і так в основному еквівалентний openjdk-7-jre ) і за замовчуванням-jre-headless . На ньому встановлюється "Стандартне виконання Java або 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.

Він мав бути альтернативою відкритого джерела компілятору Java Oracle із закритим кодом. Здається, це здебільшого застарілі та застарілі (не оновлені), дивіться посилання нижче (особливо останні оновлення на домашній сторінці GCJ).

Інформація про пакет

Чи загинув Java-компілятор GNU (GCJ)? - Переповнення
домашньої сторінки GCJ на gnu.org (оновлення: посилання зараз відсутнє , але вікі GCJ все ще доступні

openjdk-6-jdk

(openjdk-7-jdk те саме, але для Java 7)

Версія з відкритим кодом платформи Java.
З Вікі :

Основна мета проекту OpenJDK - створити відкриту реалізацію платформи Java SE (6 та 7). Це версія за замовчуванням Java, яку використовує Ubuntu і є найпростішою в установці.

Підсумок пакету:

OpenJDK - середовище розробки для створення додатків, аплетів та компонентів, що використовують мову програмування Java.

Пакети створюються за допомогою підтримки IcedTea build і виправлень проекту IcedTea.

Інформація про пакет


Також у вашому запитанні не згадувалося про Oracle Java (тому що це не в репортах за замовчуванням), які я перелічу нижче для повноти

oracle-java7-інсталятор

(назва пакету від Web Up8 PPA , що розповсюджується Oracle у .tar.gz)

«Офіційна» реалізація Java із закритим джерелом Oracle (раніше Sun). Не приймається в офіційних репортажах через проблеми з ліцензуванням. Він був доступний Web Up8 як сценарій, який завантажує та встановлює його для вас.

Як встановити - Web Up8


це означає, що встановлення ecj встановить Eclipse + Java?
rɑːdʒɑ

яка мета GCJ особливо?
rɑːdʒɑ

@rajagenupula Дивіться мої зміни ↑↑
kiri

4

У мене була така ж проблема. Я виявив, що вони мають відмінності один від одного.

І те, default-jdkі openjdkінше схоже на те, що вони мають однакові коди API Java. Але різниця в цільовій платформі.

  • openjdk: Є найбільш стійким . Він був розроблений для всіх платформ . В основному він орієнтований на платформи з відкритим кодом .

  • default-jdk: не стабільний . Він був розроблений з метою певних цільових платформ . В основному він орієнтований на закриті платформи. (Пізніше був доступний для відкритих джерел) JRE в цьому є.

Але інші зовсім інші: вони просто компілятори . Вони, як відомо, з'явилися тому, що на початку Java не була доступна для Open-Source. Випущено лише цілі компілятори для таких речей, як Eclipse.

  • gcj -jdk: (Компілятор GNU для Java). Це компілятор для Java в GNU. (Використовується Java)

  • ecj: (Eclipse Java Compiler) - компілятор Java, який використовує Eclipse.

Цей ecj - це не ECJ, що є інструментом Java Evolutionary Computation


Дякуємо, що зупинилися, будь ласка, подивіться на вищезазначені коментарі, які я зробив у відповіді колег, і спробуйте їх вирішити.
rɑːdʒɑ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.