Diferencias entre JDK y Java SDK

85

¿Existe alguna diferencia sustancial entre esos dos términos ?. Entiendo que JDK son las siglas de Java Development Kit, que es un subconjunto de SDK (Software Development Kit). Pero al especificar Java SDK, debería significar lo mismo que JDK.

Juan Carlos Blanco Martínez
fuente

Respuestas:

97

De esta entrada de wikipedia :

El JDK es un subconjunto de lo que se define vagamente como un kit de desarrollo de software (SDK) en el sentido general. En las descripciones que acompañan a sus versiones recientes para Java SE, EE y ME, Sun reconoce que, según su terminología, el JDK forma el subconjunto del SDK que es responsable de la escritura y ejecución de los programas Java. El resto del SDK se compone de software adicional, como servidores de aplicaciones, depuradores y documentación.

El "software adicional" parece ser Glassfish, MySQL y NetBeans. Esta página ofrece una comparación de los distintos paquetes que puede obtener para Java EE SDK.

jamesh
fuente
¿SDK contiene (!) En su paquete, el "paquete" de JDK?
Royi Namir
El JRE está contenido dentro del JDK, sí. El JDK es un kit de desarrollo de software (SDK).
jamesh
33

Sí, existe una diferencia entre el SDK y el JDK. La mayoría de la gente olvida que Java Platform no solo se usa para desarrollar programas en lenguaje Java. La JVM también admite algunos otros idiomas. Por lo tanto, para aclarar, el SDK es el paquete genérico de software que admite la creación de software en una variedad de lenguajes como Clojure, Groovy, Scala, JRuby y otros. El JDK es el paquete específico para desarrollar software en lenguaje Java, que contiene todas las API estándar de Java para hacerlo. (Espero haberlo explicado bien, ya que en realidad no hablo inglés)

JavaBrazil
fuente
26

JDK es el SDK para Java.

SDK significa 'Software Development Kit', una herramienta de desarrollo que permite escribir el código con más facilidad, eficacia y eficiencia. Los SDK vienen en varios idiomas. Proporcionan una gran cantidad de API (interfaces de programación de aplicaciones) que facilitan el trabajo del programador.

ingrese la descripción de la imagen aquí

El SDK para Java se denomina JDK, el kit de desarrollo de Java. Entonces, al decir SDK para Java, en realidad se está refiriendo al JDK.

Suponiendo que es nuevo en Java, hay otro término con el que se encontrará: JRE, el acrónimo de Java Runtime Environment. JRE es algo que necesita cuando intenta ejecutar programas de software escritos en Java.

Java es un lenguaje independiente de la plataforma. El JRE ejecuta la JVM, la máquina virtual de Java, que le permite ejecutar el software en cualquier plataforma para la que esté disponible la JVM.

Arnold Laishram
fuente
1
Por favor, aclare dónde encaja JRE en su diagrama.
vikramvi
JRE viene bien dentro del JDK o puede ser independiente dependiendo de lo que esté haciendo. Es el tiempo de ejecución, por lo que cuando está compilando una aplicación, viene dentro del JDK, pero cuando solo está ejecutando la aplicación, es independiente, en cuyo caso este diagrama no tiene mucho sentido.
raj240
¿Estás seguro de que jdk es el sdk de java? Teniendo en cuenta java se, podría ser cierto, pero para java ee y java me, solo he visto los SDK proporcionados por Oracle. Entonces, ¿estás realmente seguro de eso?
user12208242
la imagen está hablando conmigo :)
noyan
5

Tomado del instalador del SDK de Java EE 6, muestra lo que contiene el SDK 6 además de JDK:

Qué contiene SDK 6, además de JDK

Crenguta S
fuente
3

A Sun simplemente le gusta cambiar el nombre de las cosas sin razón aparente. Mire los tres esquemas de numeración diferentes para SunOS / Solaris, o los dos esquemas de numeración para Java. ¿Es Java 1.6, Java 2 Versión 6 o Java 6?

Paul Tomblin
fuente
3

El JDK (Java Development Kit) es un SDK (Software Dev Kit).

Se utiliza para crear software / aplicaciones en Java y, por supuesto, incluye JRE (Java Runtime Edition) para ejecutar ese software. Si solo desea ejecutar una aplicación Java, descargue solo el JRE.

Por cierto, Java EE (Enterprise Edition) contiene bibliotecas de paquetes de clases "con métodos (funciones)" para construir aplicaciones para el entorno WEB y Java ME (Micro Edition) para dispositivos móviles. Si está interesado en él (Java ME), le recomendaría echar un vistazo al DevKit y API de Android de Google.

Eche un vistazo aquí: se explicará un poco más ... http://www.oracle.com/technetwork/java/archive-139210.html

leonardolabolida
fuente
2

El JDK viene con una colección de herramientas que se utilizan para desarrollar y ejecutar programas Java ,

Incluyen:

  1. appletviewer (para ver los applets de Java)

  2. javac (compilador de Java)

  3. java (intérprete de Java)

  4. javap (desensamblador de Java)

  5. javah (para archivos de encabezado C)

  6. javadoc (para crear documentos HTML)

  7. jdb (depurador de Java)

Considerando que, el SDK viene con muchas otras herramientas que también incluyen las herramientas disponibles en los JDK.

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

Parvinder Singh
fuente
1

No hay diferencia entre JDK y Java SDK. Ambos significan lo mismo. Creo que fue una decisión de relaciones públicas en Sun cambiar de JDK a Java SDK. Creo que ha vuelto a JDK por ahora.

Nikhil Kashyap
fuente
1

En mi punto de vista, no hay diferencia entre JDK y SDK en java. Podemos encontrar todas las herramientas de desarrollo así como las facilidades en ambos. es solo un alias proporcionado por sun.

Alok Kumar Sahoo
fuente
1

El mejor ejemplo para esta pregunta, SDK - Software Development Kit - Ej .: Netbeans JDK - Java Development Kit. (Este es el compilador Java). Sin JDK, no podemos ejecutar programas java en SDK.

Thirumal
fuente
1

No hay diferencia.

El Java Software Development Kit (Java SDK) solía llamarse Java Development Kit (JDK) antes de que el departamento de marketing de Sun se volviera loco con la "tm" y la terminología. Por razones políticas y de cordura, llaman a los nombres significativos (jdk) y versiones (1.2 / 1.3 / 1.4 1.5 / 1.6) términos de "ingeniería". Los términos de marketing son "plataforma Java2" (también conocida como jdk 1.2 a 1.4) o Java5 (también conocida como jdk 1.5) o Java6 (también conocida como jdk1.6). Me duele la cabeza solo de pensarlo.

mravmrav
fuente
0

Creo que jdk tiene ciertas características que se pueden usar junto con un marco particular. Bueno, llámalo SDK como un todo.

Al igual que Android o Blackberry, ambos usan java junto con su marco.

dkumar
fuente
-1

Mi suposición inicial sería que el SDK de Java es para construir la JVM mientras que el JDK es para crear aplicaciones para la JVM.

Editar: Aunque esto parece ser incorrecto en este momento. Sun está en el proceso de abrir la JVM (quizás incluso hayan terminado, ahora), así que no me sorprendería demasiado si mi respuesta fuera correcta ... Pero por el momento, SDK y JDK son lo mismo.

Oli
fuente
Disculpe, ¿qué quiere decir con la construcción de la JVM?
Juan Carlos Blanco Martínez
Las aplicaciones Java se ejecutan dentro de la máquina virtual Java. Parte del JRE que se está abriendo al público, por lo que un SDK de Java sería útil para que las personas construyan JRE para sus plataformas.
Oli
Lo siento, ¿de dónde sacaste esta declaración (un SDK de Java sería útil para que las personas construyan JRE para sus plataformas)? Creo que o no te entiendo o ese no es el objetivo del SDK de Java. Java SDK está formado por el JRE y algunas herramientas como Javac, javap, javadoc ...
Juan Carlos Blanco Martínez
-1

Hay dos productos JavaSE y JavaEE. EE es la aplicación web / edición empresarial que permite el desarrollo y ejecución de aplicaciones web. SE es el producto Java simple que no tiene especificaciones de EE, pero es un subconjunto de EE. El SE viene en dos tipos: JDK y JRE.

Hay una gran diferencia que puede no ser obvia, y no estoy seguro de si se aplica a todos los sistemas operativos, pero en Windows, el JRE no tiene el servidor HotSpot JVM, solo el cliente, el JDK tiene ambos, y en la medida de lo posible. Sé que todos los demás sistemas operativos tienen tanto para el JDK como para el JRE. La verdadera diferencia es que el JDK contiene el compilador de Java, es decir, el JDK le permite compilar y ejecutar Java desde el código fuente, mientras que el JRE solo permite la ejecución del código de bytes de Java, es decir, la fuente que ya ha sido compilada. Y sí, las versiones más recientes incluyen una serie de componentes adicionales, como el entorno del editor NetBeans y Java en la base de datos de memoria (derby / cloudscape), pero estos son opcionales.

Donal Tobin
fuente