Qual é a diferença entre default-jdk, ecj, gcj e openjdk?

23

Esta manhã, tentei instalar algo e me deparei com uma declaração como esta:

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>

Qual é a diferença entre default-jdk, ecj, gcj e openjdk?

Desde já, obrigado.

rɑːdʒɑ
fonte
1
Há também Jikes.
Pacerier 13/11/14

Respostas:

16

default-jre

Este é um pacote simples que depende do openjdk-7-jre (e, portanto, é basicamente equivalente ao openjdk-7-jre ) e do padrão-jre-headless . Ele instala o "Java Padrão ou Java Runtime compatível", que é o OpenJDK 7 JRE.

Este pacote aponta para o tempo de execução Java, ou tempo de execução compatível com Java recomendado para a arquitetura i386, que é openjdk-7-jre para i386.

Informações do
pacote Dependências do pacote (atrevido)

ecj

Este é o "compilador Java independente do Eclipse". A instalação não instalará o Eclipse, pois é um pacote independente (consulte o link de dependências abaixo). Ele contém "uma versão independente do compilador Eclipse JDT, que é distribuído como parte do Eclipse" e é compatível com Java 1.3 a 1.7.

Este pacote fornece uma versão independente do compilador Eclipse JDT, que é distribuído como parte do Eclipse. Ele passa o JCK (Java Compatibility Kit) e é compatível com Java 1.3, 1.4, 1.5, 1.6 e 1.7.

Informações do
pacote Dependências do pacote (atrevido)

gcj-4.6-jdk

(gcj-4.7-jdk é o mesmo, mas para Java 7)

Este é um frontend para o compilador GCC para compilar nativamente bytecode Java e arquivos de origem.

O GCJ é um front end para o compilador GCC que pode compilar nativamente os arquivos de origem e bytecode Java (tm). O compilador também pode gerar arquivos de classe. Outras ferramentas de desenvolvimento java do classpath estão incluídas neste pacote.

O pacote também contém uma coleção de scripts de wrapper e links simbólicos. Ele tem como objetivo fornecer uma interface semelhante a Java-SDK para o conjunto de ferramentas GCJ.

Era para ser uma alternativa de código aberto ao compilador Oracle Java de código fechado. Parece estar obsoleto e desatualizado (não atualizado) agora, veja os links abaixo (particularmente as últimas atualizações na página inicial do GCJ).

Informações do pacote

O Java Compiler (GCJ) do GNU está morto? -
Página inicial do Stack Overflow GCJ no gnu.org (Atualização: o link foi removido agora, mas o wiki do GCJ ainda está disponível

openjdk-6-jdk

(openjdk-7-jdk é o mesmo, mas para Java 7)

Uma versão de código aberto da plataforma Java.
Do Wiki :

O objetivo principal do projeto OpenJDK é produzir uma implementação de código aberto da Java SE Platform (6 e 7). Esta é a versão padrão do Java que o Ubuntu usa e é a mais fácil de instalar.

Resumo do pacote:

O OpenJDK é um ambiente de desenvolvimento para construir aplicativos, applets e componentes usando a linguagem de programação Java.

Os pacotes são construídos usando o suporte à construção do IcedTea e as correções do projeto IcedTea.

Informações do pacote


Além disso, não foi mencionado na sua pergunta o Oracle Java (porque não está nos repositórios padrão), que listarei abaixo para garantir a integridade

oracle-java7-installer

(nome do pacote do Web Up8 PPA , distribuído pela Oracle em .tar.gz)

A implementação 'oficial' de código fechado do Java pela Oracle (anteriormente Sun). Não está hospedado nos repositórios oficiais devido a problemas de licenciamento. Foi disponibilizado pelo Web Up8 como um script que o baixa e instala para você.

Como instalar - Web Up8

kiri
fonte
significa que a instalação do ecj instalará o Eclipse + Java?
rɑːdʒɑ
qual é o propósito da GCJ em especial?
rɑːdʒɑ
@rajagenupula Veja minhas edições ↑↑
kiri
4

Eu tive o mesmo problema. O que eu descobri foi que eles estão tendo diferenças de um para outro.

Ambos default-jdke openjdksão mais parecidos , pois possuem os mesmos códigos de API Java. Mas a diferença está na plataforma de destino.

  • openjdk: é o mais estável . Foi projetado para todas as plataformas . Ele é basicamente voltado para plataformas de código aberto .

  • default-jdk: Não é estável . Foi projetado visando determinadas plataformas de destino . Ele é basicamente voltado para plataformas fechadas . (Mais tarde estava disponível para código-fonte aberto) Os JREs estão nisso.

Mas outros são totalmente diferentes: são apenas compiladores . Eles eram conhecidos por terem surgido porque, no início, o Java não estava disponível para código-fonte aberto. Somente compiladores cetain foram lançados para coisas como Eclipse.

  • gcj -jdk: (Compilador GNU para Java). É um compilador para Java no GNU. (Usado por Java)

  • ecj: (Compilador Java do Eclipse) É o compilador Java usado pelo Eclipse.

Este ecj não é ECJ, que é o Java Evolutionary Computation Toolkit


fonte
Obrigado pela visita, por favor, olhe os comentários acima que eu fiz sobre a resposta de colegas e tente resolvê-los, por favor.
rɑːdʒɑ