Diferenças entre JDK e Java SDK

85

Existe alguma diferença substancial entre esses dois termos ?. Eu entendo que JDK significa Java Development Kit, que é um subconjunto do SDK (Software Development Kit). Mas, especificando o Java SDK, deve significar o mesmo que JDK.

Juan Carlos Blanco Martínez
fonte

Respostas:

97

Desta entrada da Wikipedia :

O JDK é um subconjunto do que é definido vagamente como um kit de desenvolvimento de software (SDK) no sentido geral. Nas descrições que acompanham seus lançamentos recentes para Java SE, EE e ME, a Sun reconhece que, de acordo com sua terminologia, o JDK forma o subconjunto do SDK que é responsável pela escrita e execução de programas Java. O restante do SDK é composto de software extra, como servidores de aplicativos, depuradores e documentação.

O "software extra" parece ser Glassfish, MySQL e NetBeans. Esta página oferece uma comparação dos vários pacotes que você pode obter para o Java EE SDK.

Jamesh
fonte
O SDK contém (!) Em seu pacote - o "pacote" JDK?
Royi Namir
O JRE está contido no JDK, sim. O JDK é um kit de desenvolvimento de software (SDK).
Jamesh
33

Sim, há uma diferença entre o SDK e o JDK. A maioria das pessoas esquece que a plataforma Java não é usada apenas para desenvolver programas na linguagem Java. A JVM também oferece suporte a alguns outros idiomas. Assim, deixando claro, o SDK é o pacote genérico de software que oferece suporte à criação de software em uma variedade de linguagens como Clojure, Groovy, Scala, JRuby e outras. O JDK é o bundle específico para desenvolver software na linguagem Java, contendo todas as APIs padrão Java para isso. (Espero ter explicado bem, já que na verdade não falo inglês)

JavaBrazil
fonte
26

JDK é o SDK para Java.

SDK significa 'Software Development Kit', uma ferramenta de desenvolvedor que permite escrever o código com mais facilidade, eficácia e eficiência. Os SDKs vêm para vários idiomas. Eles fornecem muitas APIs (interfaces de programação de aplicativos) que facilitam o trabalho do programador.

insira a descrição da imagem aqui

O SDK para Java é denominado JDK, o Java Development Kit. Portanto, ao dizer SDK para Java, você está realmente se referindo ao JDK.

Supondo que você seja novo no Java, há outro termo que você encontrará - JRE, a sigla para Java Runtime Environment. JRE é algo de que você precisa ao tentar executar programas de software escritos em Java.

Java é uma linguagem independente de plataforma. O JRE executa a JVM, a Java Virtual Machine, que permite que você execute o software em qualquer plataforma para a qual a JVM esteja disponível.

Arnold Laishram
fonte
1
Esclareça onde o JRE se encaixa em seu diagrama.
vikramvi
O JRE vem bem dentro do JDK ou pode ser autônomo, dependendo do que você está fazendo. É o tempo de execução, portanto, quando você está construindo um aplicativo, ele vem dentro do JDK, mas quando você está apenas executando o aplicativo, ele é independente, caso em que este diagrama não faz muito sentido.
raj240
Tem certeza que jdk é o SDK do java? Considerando o java se, poderia ser verdade, mas para java ee e java me, vi apenas SDKs fornecidos pela Oracle. Então, você tem certeza disso?
user12208242
imagem está falando comigo :)
noyan
5

Retirado do Java EE 6 SDK Installer, mostra o que o SDK 6 contém além do JDK:

O que o SDK 6 contém, além do JDK

Crenguta S
fonte
3

A Sun só gosta de mudar os nomes das coisas sem motivo aparente. Observe os três esquemas de numeração diferentes para SunOS / Solaris ou os dois esquemas de numeração para Java. É Java 1.6, Java 2 versão 6 ou Java 6?

Paul Tomblin
fonte
3

O JDK (Java Development Kit) é um SDK (Software Dev Kit).

É usado para construir software / aplicativos em Java e, claro, inclui o JRE (Java Runtime Edition) para executar esse software. Se você deseja apenas executar um aplicativo Java, baixe apenas o JRE.

A propósito, Java EE (Enterprise Edition) contém bibliotecas de pacotes de classes “com métodos (funções)” para construção de aplicativos para o ambiente WEB e Java ME (Micro Edition) para dispositivos móveis. Se você estiver interessado nele (Java ME), eu recomendaria dar uma olhada no Android DevKit e API do Google.

Dê uma olhada aqui: isso vai explicar um pouco mais .. http://www.oracle.com/technetwork/java/archive-139210.html

leonardolabolida
fonte
2

O JDK vem com uma coleção de ferramentas que são usadas para desenvolver e executar programas Java ,

Eles incluem:

  1. appletviewer (para visualizar miniaplicativos Java)

  2. javac (compilador Java)

  3. java (interpretador Java)

  4. javap (desmontador Java)

  5. javah (para arquivos de cabeçalho C)

  6. javadoc (para criar documentos HTML)

  7. jdb (depurador Java)

Visto que o SDK vem com muitas outras ferramentas, incluindo também as ferramentas disponíveis em JDKs.

http://parvindersingh.webs.com/apps/forums/topics/show/8853125-solved-java-difference-between-jdk-and-sdk-

Parvinder Singh
fonte
1

Não há diferença entre JDK e Java SDK. Ambos significam a mesma coisa. Acho que foi uma decisão de relações públicas da Sun mudar de JDK para Java SDK. Acho que está de volta ao JDK por enquanto.

Nikhil Kashyap
fonte
1

No meu ponto de vista, não há diferença entre JDK e SDK em java. Podemos encontrar todas as ferramentas de desenvolvimento, bem como instalações em ambos. é apenas um apelido fornecido pela sun.

Alok Kumar Sahoo
fonte
1

Melhor exemplo para esta pergunta, SDK - Software Development Kit - Ex: Netbeans JDK - Java Development Kit. (Este é o compilador Java). Sem o JDK, não podemos executar programas Java no SDK.

Thirumal
fonte
1

Não há diferença.

O Java Software Development Kit (Java SDK) costumava ser chamado de Java Development Kit (JDK) antes que o departamento de marketing da Sun enlouquecesse com o "tm" e a terminologia. Por razões políticas e de sanidade, eles chamam os nomes significativos (jdk) e versões (1.2 / 1.3 / 1.4 1.5 / 1.6) de termos de "engenharia". Os termos de marketing são "plataforma Java2" (também conhecido como jdk 1.2 a 1.4) ou Java5 (também conhecido como jdk 1.5) ou Java6 (também conhecido como jdk1.6). Estou ficando com dor de cabeça só de pensar nisso.

Mravmrav
fonte
0

Acho que o jdk tem certos recursos que podem ser usados ​​junto com um framework particular. Vamos chamá-lo de SDK como um todo.

Assim como o Android ou o Blackberry, ambos usam java junto com sua estrutura.

dkumar
fonte
-1

Meu palpite inicial seria que o Java SDK é para construir o JVM, enquanto o JDK é para construir aplicativos para o JVM.

Edit: Embora isso pareça estar incorreto no momento. A Sun está em processo de opensourcing do JVM (talvez eles até tenham terminado, agora), então eu não ficaria muito surpreso se minha resposta se tornasse correta ... Mas no momento, o SDK e o JDK são a mesma coisa.

Oli
fonte
Desculpe o que você quer dizer com construir o JVM?
Juan Carlos Blanco Martínez,
Os aplicativos Java são executados dentro da Java Virtual Machine. Parte do JRE que está sendo aberto ao público, portanto, um Java SDK seria útil para as pessoas criarem JREs para suas plataformas.
Oli,
Desculpe, de onde você tirou essa declaração (um Java SDK seria útil para as pessoas criarem JREs para suas plataformas)? Acho que não estou entendendo você ou esse não é o alvo do Java SDK. O Java SDK é formado pelo JRE e algumas ferramentas como Javac, javap, javadoc ...
Juan Carlos Blanco Martínez
-1

Existem dois produtos JavaSE e JavaEE. EE é a aplicação web / edição corporativa que permite o desenvolvimento e execução de aplicações web. SE é o produto Java simples que não possui especificações EE, mas é um subconjunto de EE. O SE vem em dois tipos: JDK e JRE.

Há uma grande diferença que pode não ser óbvia, e não tenho certeza se se aplica a todos os sistemas operacionais, mas no Windows o JRE não tem o servidor HotSpot JVM, apenas o cliente, o JDK tem os dois, e até Eu sei que todos os outros sistemas operacionais têm tanto para o JDK quanto para o JRE. A diferença real é que o JDK contém o compilador Java, ou seja, o JDK permite que você compile e execute o Java a partir do código-fonte, enquanto o JRE só permite a execução do código de bytes Java, que é um código-fonte já compilado. E sim, as versões mais recentes agregam vários componentes extras, como o ambiente do editor NetBeans e o banco de dados de memória Java (derby / cloudscape), mas são opcionais.

Donal Tobin
fonte