Unterschiede zwischen JDK und Java SDK

85

Gibt es einen wesentlichen Unterschied zwischen diesen beiden Begriffen? Ich verstehe, dass JDK für Java Development Kit steht, eine Teilmenge von SDK (Software Development Kit). Wenn Sie jedoch Java SDK angeben, sollte dies dasselbe bedeuten wie JDK.

Juan Carlos Blanco Martínez
quelle

Antworten:

97

Aus diesem Wikipedia-Eintrag :

Das JDK ist eine Teilmenge dessen, was im allgemeinen Sinne lose als Software Development Kit (SDK) definiert ist. In den Beschreibungen, die den jüngsten Versionen für Java SE, EE und ME beiliegen, erkennt Sun an, dass das JDK unter seiner Terminologie die Teilmenge des SDK bildet, das für das Schreiben und Ausführen von Java-Programmen verantwortlich ist. Der Rest des SDK besteht aus zusätzlicher Software wie Anwendungsservern, Debuggern und Dokumentation.

Die "zusätzliche Software" scheint Glassfish, MySQL und NetBeans zu sein. Diese Seite bietet einen Vergleich der verschiedenen Pakete, die Sie für das Java EE SDK erhalten können.

Jamesh
quelle
Enthält das SDK (!) In seinem Paket - das JDK "Paket"?
Royi Namir
Die JRE ist im JDK enthalten, ja. Das JDK ist ein Software Development Kit (SDK).
Jamesh
33

Ja, es gibt einen Unterschied zwischen dem SDK und dem JDK. Die meisten Menschen vergessen, dass Java Platform nicht nur zum Entwickeln von Programmen in Java-Sprache verwendet wird. Die JVM unterstützt auch einige andere Sprachen. Das SDK ist ein allgemeines Softwarepaket, das die Erstellung von Software in einer Vielzahl von Sprachen wie Clojure, Groovy, Scala, JRuby und anderen unterstützt. Das JDK ist das spezifische Paket zur Entwicklung von Software in Java-Sprache, das alle Java-Standard-APIs enthält, um dies zu tun. (Ich hoffe, ich habe es gut erklärt, da ich eigentlich kein Englisch spreche)

JavaBrazil
quelle
24

JDK ist das SDK für Java.

SDK steht für 'Software Development Kit', ein Entwicklertool, mit dem der Code einfacher, effektiver und effizienter geschrieben werden kann. SDKs gibt es für verschiedene Sprachen. Sie bieten viele APIs (Application Programming Interfaces), die dem Programmierer die Arbeit erleichtern.

Geben Sie hier die Bildbeschreibung ein

Das SDK für Java heißt JDK, das Java Development Kit. Wenn Sie also SDK für Java sagen, beziehen Sie sich tatsächlich auf das JDK.

Angenommen, Sie sind neu in Java, gibt es einen anderen Begriff, auf den Sie stoßen werden: JRE, das Akronym für Java Runtime Environment. JRE ist etwas, das Sie benötigen, wenn Sie versuchen, in Java geschriebene Softwareprogramme auszuführen.

Java ist eine plattformunabhängige Sprache. Die JRE führt die JVM aus, die Java Virtual Machine, mit der Sie die Software auf jeder Plattform ausführen können, für die die JVM verfügbar ist.

Arnold Laishram
quelle
1
Bitte klären Sie, wo JRE in Ihr Diagramm passt.
Vikramvi
JRE kommt gut in das JDK oder kann eigenständig sein, je nachdem, was Sie tun. Es ist die Laufzeit. Wenn Sie also eine Anwendung erstellen, befindet sie sich im JDK. Wenn Sie jedoch nur die Anwendung ausführen, ist sie eigenständig. In diesem Fall ist dieses Diagramm nicht sehr sinnvoll.
Raj240
Sind Sie sicher, dass JDK das SDK von Java ist? In Anbetracht von Java Se könnte es wahr sein, aber für Java Ee und Java Me habe ich nur SDKs gesehen, die von Oracle bereitgestellt wurden. Bist du dir da wirklich sicher?
user12208242
4

Aus dem Java EE 6 SDK-Installationsprogramm entnommen, zeigt, was SDK 6 neben JDK enthält:

Was SDK 6 neben JDK enthält

Crenguta S.
quelle
3

Sun mag es einfach, die Namen von Dingen ohne ersichtlichen Grund zu ändern. Schauen Sie sich die drei verschiedenen Nummerierungsschemata für SunOS / Solaris oder die beiden Nummerierungsschemata für Java an. Ist Java 1.6, Java 2 Version 6 oder Java 6?

Paul Tomblin
quelle
3

Das JDK (Java Development Kit) ist ein SDK (Software Dev Kit).

Es wird zum Erstellen von Software / Anwendungen auf Java verwendet und enthält natürlich die JRE (Java Runtime Edition) zum Ausführen dieser Software. Wenn Sie nur eine Java-Anwendung ausführen möchten, laden Sie nur die JRE herunter.

Java EE (Enterprise Edition) enthält übrigens Bibliotheken mit Klassenpaketen "mit Methoden (Funktionen)" zum Erstellen von Apps für die WEB-Umgebung und Java ME (Micro Edition) für mobile Geräte. Wenn Sie daran interessiert sind (Java ME), würde ich empfehlen, einen Blick auf Googles Android DevKit und API zu werfen.

Schauen Sie hier: Es wird etwas mehr erklären. Http://www.oracle.com/technetwork/java/archive-139210.html

leonardolabolida
quelle
2

Das JDK enthält eine Sammlung von Tools, die zum Entwickeln und Ausführen von Java-Programmen verwendet werden werden.

Sie beinhalten:

  1. Appletviewer (zum Anzeigen von Java-Applets)

  2. javac (Java-Compiler)

  3. Java (Java-Interpreter)

  4. javap (Java Disassembler)

  5. javah (für C-Header-Dateien)

  6. javadoc (zum Erstellen von HTML-Dokumenten)

  7. jdb (Java-Debugger)

Das SDK enthält viele andere Tools, einschließlich der in JDKs verfügbaren Tools.

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

Parvinder Singh
quelle
1

Es gibt keinen Unterschied zwischen JDK und Java SDK. Beide bedeuten dasselbe. Ich denke, es war eine PR-Entscheidung bei Sun, von JDK auf Java SDK umzusteigen. Ich denke, es ist vorerst wieder JDK.

Nikhil Kashyap
quelle
1

Aus meiner Sicht gibt es in Java keinen Unterschied zwischen JDK und SDK. In beiden finden wir alle Entwicklungswerkzeuge sowie Einrichtungen. Es ist nur ein Alias ​​der Sonne.

Alok Kumar Sahoo
quelle
1

Bestes Beispiel für diese Frage: SDK - Software Development Kit - Beispiel: Netbeans JDK - Java Development Kit (Dies ist der Java-Compiler). Ohne JDK können wir keine Java-Programme im SDK ausführen.

Thirumal
quelle
1

Es gibt keinen Unterschied.

Das Java Software Development Kit (Java SDK) wurde früher als Java Development Kit (JDK) bezeichnet, bevor die Marketingabteilung von Sun mit dem "tm" und der Terminologie verrückt wurde. Aus politischen Gründen und aus Gründen der Vernunft nennen sie die aussagekräftigen Namen (jdk) und Versionen (1.2 / 1.3 / 1.4 1.5 / 1.6) "technische" Begriffe. Die Marketingbegriffe sind "Java2-Plattform" (aka jdk 1.2 bis 1.4) oder Java5 (aka jdk 1.5) oder Java6 (aka jdk1.6). Ich bekomme Kopfschmerzen, wenn ich nur daran denke.

mravmrav
quelle
0

Ich denke, JDK hat bestimmte Funktionen, die zusammen mit bestimmten Frameworks verwendet werden können. Nennen wir es SDK als Ganzes.

Wie Android oder Blackberry verwenden beide Java zusammen mit ihrem Framework.

dkumar
quelle
-1

Meine anfängliche Vermutung wäre, dass das Java SDK zum Erstellen der JVM dient, während das JDK zum Erstellen von Apps für die JVM dient.

Bearbeiten: Obwohl dies im Moment falsch zu sein scheint. Sun ist dabei, die JVM zu öffnen (vielleicht sind sie jetzt sogar fertig), daher wäre ich nicht allzu überrascht, wenn meine Antwort richtig wird ... Aber im Moment sind SDK und JDK dasselbe.

Oli
quelle
Entschuldigung, was meinst du mit dem Aufbau der JVM?
Juan Carlos Blanco Martínez
Java-Anwendungen werden in der Java Virtual Machine ausgeführt. Ein Teil der JRE, der für die Öffentlichkeit zugänglich gemacht wird. Ein Java SDK wäre daher hilfreich, um JREs für ihre Plattformen zu erstellen.
Oli
Entschuldigung, woher haben Sie diese Aussage (ein Java SDK wäre nützlich, um JREs für ihre Plattformen zu erstellen)? Ich denke, dass ich Sie entweder nicht verstehe oder dass dies nicht das Ziel des Java SDK ist. Java SDK wird von der JRE und einigen Tools wie Javac, Javap, Javadoc ...
Juan Carlos Blanco Martínez
-1

Es gibt zwei Produkte JavaSE und JavaEE. EE ist die Webanwendung / Enterprise Edition, mit der Webanwendungen entwickelt und ausgeführt werden können. SE ist das einfache Java-Produkt, das keine EE-Besonderheiten enthält, sondern eine Teilmenge von EE ist. Die SE gibt es in zwei Typen: JDK und JRE.

Es gibt einen großen Unterschied, der möglicherweise nicht offensichtlich ist, und ich bin nicht sicher, ob er für alle Betriebssysteme gilt, aber unter Windows verfügt die JRE nicht über die Server-HotSpot-JVM, sondern nur über den Client, das JDK über beide und soweit Ich weiß, dass alle anderen Betriebssysteme sowohl für das JDK als auch für das JRE haben. Der eigentliche Unterschied besteht darin, dass das JDK den Java-Compiler enthält. Das heißt, das JDK ermöglicht das Kompilieren und Ausführen von Java aus dem Quellcode, wobei das JRE nur das Ausführen von Java-Bytecode ermöglicht, dh der Quelle, die bereits kompiliert wurde. Und ja, neuere Versionen bündeln eine Reihe zusätzlicher Komponenten, wie z. B. die NetBeans-Editorumgebung und Java in der Speicherdatenbank (Derby / Cloudscape), aber diese sind optional.

Donal Tobin
quelle