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

22

Esta manhã, tentei instalar algo e encontrei 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?

Obrigado antecipadamente.

    
por Ten-Coin 16.11.2013 / 03:13

2 respostas

16

default-jre

Este é um pacote simples que depende de openjdk-7-jre (e assim é basicamente equivalente a openjdk-7-jre ) e default-jre -lessless . Ele instala o "Java Runtime Standard Java ou compatível", que é o OpenJDK 7 JRE.

  

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

Informações sobre o pacote
Dependências de pacotes (atrevido)

ecj

Este é o "compilador independente do Eclipse Java". Instalá-lo não instalará o Eclipse, pois é um pacote standalone (veja o link dependencies abaixo). Ele contém "uma versão independente do compilador Eclipse JDT que é distribuído como parte do Eclipse" e é compatível com o 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 sobre o pacote
Dependências de pacotes (atrevido)

gcj-4.6-jdk

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

Esta é uma interface para o compilador do GCC para compilar de forma nativa o bytecode e os arquivos de origem do Java.

  

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

     

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

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

Informações do pacote

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

openjdk-6-jdk

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

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

  

O principal objetivo do projeto OpenJDK é produzir uma implementação de código aberto da Plataforma Java SE (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 criação de aplicativos,   applets e componentes usando a linguagem de programação Java.

     

Os pacotes são criados usando o suporte de compilação do IcedTea e os patches   do projeto IcedTea.

Informações do pacote

Além disso, não mencionado em sua pergunta foi o Oracle Java (porque não está no repositório padrão), que listarei abaixo para ser completo

oracle-java7-installer

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

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

Como instalar - Web Up8

    
por kiri 16.11.2013 / 07:00
4

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

Tanto default-jdk como openjdk são mais semelhantes porque têm os mesmos códigos da API java. Mas a diferença está na plataforma de segmentação.

  
  • openjdk: é o mais estável . Ele foi projetado para todas as plataformas . Basicamente, está a segmentar plataformas Open-source .

  •   
  • default-jdk: não estável . Ele foi projetado com o objetivo de determinadas plataformas de segmentação . Basicamente, é direcionado para plataformas Fechadas (mais tarde disponíveis para o Open-Source). Os JREs estão nisto.

  •   

Mas outros são totalmente diferentes: eles são apenas Compiladores . Eles eram conhecidos porque, no começo, Java não estava disponível para o Open-Source. Apenas compiladores cetain foram liberados para coisas como o Eclipse.

  
  • gcj -jdk: (compilador GNU para Java). É um compilador para Java no GNU (usado pelo Java)

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

  •   

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

    
por user224082 16.11.2013 / 05:22