UnterSchied OpenJDK vs JDK

Generic1

Top Contributor
Hallo,

was ist eingentlich der Unterschied zwischen OpenJDK und JDK. Gibt es da signifikante unterschiede in den Klassen oder was ist da genau der Unterschied
lg
Geneirc1
 
J

jDennis79_nli

Gast
Gibt es da signifikante unterschiede in den Klassen

Das würde dem Sinn einer Standardbibliothek irgendwie zuwiderlaufen... :D

Naja, das OpenJDK ist eben eine freie Implementierung des Java-Compilers. Die Unterschiede, falls überhaupt vorhanden und relevant, lägen also in der Art und Weise, wie der Code in Bytecode übersetzt wird. Das kann in Einzelfällen die Performance beeinflussen, oder was auch immer sonst an der Struktur / Funktionsweise des Bytecode so dranhängt.

Würde ich mir aber nicht zu viele Gedanken drüber machen. Für den "Hausgebrauch" dürften die Unterschiede wahrscheinlich nicht einmal bemerkbar sein.
 
S

Spacerat

Gast
Also soweit ich das mitgeschnitten habe, ist das OpenJDK dazu da, Java auch auf anderen Systemen bzw. Platformen verfügbar zu machen, ausser denen, für die es z.B. die Binaries bereits auf java.oracle.com gibt. Die Dalvik-JVM der Android-Platform dürfte evtl. so ein Kandidat sein. Die Unterschiede dazu sind auf jeden Fall schon mal gravierend, zumal bei dieser ein ganz anderes Grafik-System statt AWT oder Swing verwendet wird.
 
J

jDennis79_nli

Gast
Also soweit ich das mitgeschnitten habe, ist das OpenJDK dazu da, Java auch auf anderen Systemen bzw. Platformen verfügbar zu machen, ausser denen, für die es z.B. die Binaries bereits auf java.oracle.com gibt. Die Dalvik-JVM der Android-Platform dürfte evtl. so ein Kandidat sein. Die Unterschiede dazu sind auf jeden Fall schon mal gravierend, zumal bei dieser ein ganz anderes Grafik-System statt AWT oder Swing verwendet wird.

Interessant. Warum gibt es dafür kein "offizielles" JDK? Gerade Android ist doch inzwischen eines der verbreitetsten Einsatzgebiete für Java!?

Also JDK = JVM + Development Kit?

Im Wesentlichen, von der sprachlichen Ungenauigkeit abgesehen, ja.
 
S

Spacerat

Gast
Also JDK = JVM + Development Kit?
Das trifft auf die Oracle JVMs (JREs) definitiv zu. Was aber noch zutrifft... beim OpenJDK sind afaik auch Quelltexte für native Librarys nebst Bytecode-Interpreter und oder -Compiler dabei.
Interessant. Warum gibt es dafür kein "offizielles" JDK? Gerade Android ist doch inzwischen eines der verbreitetsten Einsatzgebiete für Java!?
Gibt es doch... Android SDK | Android Developers
 
Zuletzt bearbeitet von einem Moderator:
S

Spacerat

Gast
Dann war das kein gutes Beispiel für deine These. :)
Ach, und wieso nicht? Das sich die von Android verwendete Dalvik-JVM von den Oracle-JVMs gravierend unterscheidet sagte ich bereits. Das der native Teil auf z.B. Smartphones anders aussehen muss als z.B. jener von Windows sollte auch klar sein. Das man das OpenJDK durchaus dazu verwenden kann, sich eine für seine Zwecke geeignete JVM zusammen zu schustern, lässt sich vllt. noch ahnen. Ob die Dalvik-JVM per OpenJDK entstanden ist ebenso, denn es wird anscheinend nirgendwo erwähnt.
 
Zuletzt bearbeitet von einem Moderator:
B

bygones

Gast
mhm also bei google mal OpenJDK eingeben, erster Treffer: OpenJDK und da steht oben gleich "What is this?"...

vereinfacht gesagt - OpenJDK ist open source, JDK nicht
 
J

jDennis79_nli

Gast
Ach, und wieso nicht? Das sich die von Android verwendete Dalvik-JVM von den Oracle-JVMs gravierend unterscheidet sagte ich bereits. Das der native Teil auf z.B. Smartphones anders aussehen muss als z.B. jener von Windows sollte auch klar sein. Das man das OpenJDK durchaus dazu verwenden kann, sich eine für seine Zwecke geeignete JVM zusammen zu schustern, lässt sich vllt. noch ahnen. Ob die Dalvik-JVM per OpenJDK entstanden ist ebenso, denn es wird anscheinend nirgendwo erwähnt.

Ich habe den Verdacht, dass wir aneinander vorbei geredet haben / reden. Deine ursprüngliche Aussage war ja, dass das OpenJDK unter anderem die Daseinsberechtigung hat, Java unter unüblichen Plattformen verfügbar zu machen - zumindest hatte ich es so verstanden, vielleicht hast du ja was ganz anderes gemeint.

Dein Beispiel dazu war dann Android. Deshalb hatte ich gefragt, warum hier kein Sun/Oracle JDK verfügbar ist, dass ein OpenJDK nötig ist. Immer noch unter der Voraussetzung, dass dies ein Hauptzweck des OpenJDK ist, wie ich deine Aussage verstanden hatte.

Klarer? Ich glaub' nicht, bin aber auch grade nur halb bei der Sache, sorry.
 

theuserbl

Bekanntes Mitglied
was ist eingentlich der Unterschied zwischen OpenJDK und JDK. Gibt es da signifikante unterschiede in den Klassen oder was ist da genau der Unterschied

Als Java noch Sun gehörte, plante Sun Java als OpenJDK OpenSource zu machen.
Man wählte hierfür den Namen OpenJDK.
Als Lizenz wählte man die Lizenz der freien Reimplemetierung GNU Classpath. Wodrauf das GNU Classpath Projekt selber bald eingestellt wurde.

Da das proprietäre JDK auch einigen Code enthält, der von Drittanbietern stammt, die ihren Code nicht öffnen wollen, baut OpenJDK auf closed source Bibliotheken auf. Die Idee von Sun (nun Oracle) war, JDK vollständig als OpenJDK zu öffnen. Wegen dem Third-Party-Code ging es aber nicht. Das heißt es gab einen Teil (ich glaube über 95%) des Codes den Sun als OpenSource freigab und einen weiteren Teil der als ClosedSource-Binaries für OpenJDK zur Verfügung stand.

Da die GNU Classpath Entwickler sowieso Java nachprogrammierten, fingen sie nun unter dem IcedTea Projekt an, die ClosedSource Teile zu reimplementieren. Desweiteren integriert Sun/Oracle hin und wieder auch Code von IcedTea in OpenJDK.
Auf den meisten Linux-Distributionen (die ein 100% OpenSource-Java einsetzen) läuft OpenJDK in Kombination mit IcedTea.

Code:
$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.4) (suse-0.3.2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
$

Sun hatte früher die Anfänge von JDK 7 als OpenJDK7 zu OpenSource gemacht. Da aber über Jahre noch immer JDK6 aktuell war, wurde dieses OpenJDK7 zu einem OpenJDK6 gestutzt. OpenJDK7 gab es parallel dazu weiterhin. Somit hatten JDK6 und OpenJDK6 verschiedene Ursprünge und wurden auch getrennt voneinander gepflegt. Auch galt, daß Bugs die im JDK6 waren, nicht unbedingt auch im OpenJDK6 waren und umgekehrt.
Seit JDK7, basiert JDK7 auf OpenJDK7. JDK7 ist gewissermaßen OpenJDK7 + zusätzliche Bibliotheken (unter Windows das komplette AWT und so) bzw. Bibliotheken die bei der OpenSource reimplementierung noch nicht so gut sind, bei denen werden die altem closed source Bibliotheken verwendet.
Die zusätzlichen Bibliotheken wären wenn auch nur Bibliotheken, die noch nicht richtig als OpenSource existieren.

Also letztendlich ist der Unterschied zwischen JDK und OpenJDK gering und wird immer kleiner.

Grüße
theuserbl
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Encera Unterschied zweier "toString"-Methoden Allgemeine Java-Themen 1
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
P Unterschied Java SE und Java EE Allgemeine Java-Themen 2
J Unterschied: Polymorphie und Dynamisches Binden Allgemeine Java-Themen 8
VfL_Freak JDK installieren Unterschied zw. JDK 8_151 und 8_152 Allgemeine Java-Themen 3
F Unterschied zwischen NormalizedValue und Value Allgemeine Java-Themen 5
T Unterschied Oracle JDK 8u111 8u112 Allgemeine Java-Themen 3
W Unterschied Standalone und Applet Allgemeine Java-Themen 1
O [log4J] Unterschied SocketServer <-> SimpleSocketServer Allgemeine Java-Themen 0
A Best Practice Unterschied zwischen einer sauberen Dependency Injection und einer statischen Klasse Allgemeine Java-Themen 5
M Unterschied zwischen Win 7/2008R2 und Win8.1/2012R2? Allgemeine Java-Themen 8
M Unterschied CPU Auslastung Allgemeine Java-Themen 0
H Gibt es einen großen Unterschied zwischen Java 6 und Java 7? Allgemeine Java-Themen 3
N Unterschied Hobby-Codung und Professionelle Softwareentwicklung Allgemeine Java-Themen 5
D Unterschied Vererbung und Polymorphie? Allgemeine Java-Themen 4
G Unterschied MyClass.class vs this Allgemeine Java-Themen 2
H Unterschied EventQueue.invoke... und thread.start() Allgemeine Java-Themen 4
Semox Unterschied bei Thread Erstellung Allgemeine Java-Themen 11
D Exakte Unterschied zwischen diesen Elementen? Allgemeine Java-Themen 5
N Unterschied zwischen "Java" und "Java mit Eclipse" Allgemeine Java-Themen 17
N Unterschied abstract interface und interface Allgemeine Java-Themen 4
G Hauptthread anhalten / Unterschied zwischen Main-Thread und dialogelement-Thread Allgemeine Java-Themen 2
Lufti Unterschied zwischen Djava.library.path und Class-Path im Manifest? Allgemeine Java-Themen 2
B Unterschied zwischen Klasse und Objekt? Allgemeine Java-Themen 8
G Unterschied Enterprise Anwendung und Web Anwendung Allgemeine Java-Themen 30
B Gibt es einen Unterschied zwischen Java 1.2 und Java 2? Allgemeine Java-Themen 7
J Unterschied zwischen "Debug" und "Run" Allgemeine Java-Themen 16
Q Unterschied der Logger Allgemeine Java-Themen 9
G Unterschied Long - Int Allgemeine Java-Themen 9
A Unterschied Scanner und Matcher Allgemeine Java-Themen 5
M Unterschied der java.exe des JDK und der JRE Allgemeine Java-Themen 15
P Unterschied zwischen Funktion und Methoden Allgemeine Java-Themen 3
K Unterschied Compilierung Eclipse 3.2 und Ant Allgemeine Java-Themen 3
O Unterschied zwischen ThreadPoolExecutor und Executor Service Allgemeine Java-Themen 7
O Unterschied zwischen Semaphoren/Lock und ExecutorService Allgemeine Java-Themen 3
V Unterschied FileOutputStream und FileWriter? Allgemeine Java-Themen 8
I Unterschied zwischen Applet und JApplet Allgemeine Java-Themen 2
B Unterschied: jar <-> konsole Allgemeine Java-Themen 9
G Unterschied abstrakte Klasse und Interface? Allgemeine Java-Themen 3
R Der Unterschied zwischen 2.1 und 2.10 Allgemeine Java-Themen 2
T abstract - interface Unterschied Allgemeine Java-Themen 22
K Unterschied Core Java / Desktop Allgemeine Java-Themen 12
P Was ist der Unterschied zwischen JSP und Servlet ? Allgemeine Java-Themen 4
J Unterschied PrintJob & PrinterJob Allgemeine Java-Themen 11
M Unterschied notify() und notifyAll() Allgemeine Java-Themen 1
N Unterschied Calendar und GregorianCalendar Allgemeine Java-Themen 9
S Unterschied zwischen notify() und notifyAll() Allgemeine Java-Themen 2
M Unterschied zwischen // und \\ Allgemeine Java-Themen 6
E Unterschied zwischen Adapterklassen und abstracten Klassen? Allgemeine Java-Themen 5
T Unterschied Dämon - Thread (läuft später auf RMI hinaus...) Allgemeine Java-Themen 6
B Unterschied: Java - Java 2 Allgemeine Java-Themen 5
B (String) und toString(), woliegt der Unterschied? Allgemeine Java-Themen 4
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
P JDK installieren OpenJDK: Lizenz von mit JLINK erzeugten Executables Allgemeine Java-Themen 1
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
D Vergleich OracleJDK/OpenJDK Allgemeine Java-Themen 7
R JDK installieren OpenJDK-Aufruf sehr langsam Allgemeine Java-Themen 4
R JDK installieren OpenJDK druckt falsch Allgemeine Java-Themen 3
Blender3D Linzensen OpenJDK ist die kommerzielle Nutzung kostenfrei? Allgemeine Java-Themen 3
M OpenJDK Allgemeine Java-Themen 1
C Darstellungsproblem unter Debian und OpenJDK Allgemeine Java-Themen 5
S jdk versus openjdk - Optimierung von Konstanten? Allgemeine Java-Themen 8
C OpenJDK - FileReader throws FileNotFoundException Allgemeine Java-Themen 19
C OpenJDK Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben