Vergleich OracleJDK/OpenJDK

Hallo liebe Community,

ich habe schon ein wenig im Studium programmiert, aber so richtig fit bin ich mit Java noch nicht. Deshalb möchte ich euch um Hilfe bitten.
Es geht um folgendes. In unserem Modul haben wir einige Programmbeispiele dargestellt bekommen. Alle in OracleJDK 8
Themen waren:
Dateien/Verzeichnisse einfügen/entfernen/..
Interfaces
ArrayList<E>
JavaFX

Ich muss nun klären, inwiefern diese Programmbeispiele auch in OpenJDK lauffähig wären bzw. wo auch die Unterschiede zwischen OraceJDK und OpenJDK liegen.

Selbstverständlich möchte ich nicht von euch die Aufgabe gelöst bekommen. Könnt ihr mir aber eine Vorgehensweise nennen? Was sollte ich als erstes machen, um die Unterschiede festzustellen, wenn ich nicht alle Programme nun mit einem neuen OpenJDK ausprobieren möchte. Derzeit benutze ich, wie eben auch im Skript Oracle JDK 8.

Bei den JavaFX Programmen habe ich aber bereits festgestellt, dass die Versionen nach 8 (denk ich) nicht mehr so impementiert werden kann.

Ich bin euch um jeden Rat dankbar und bitte euch meine geringen Kenntnisse zu entschuldigen. Ich bin sehr gewillt zu lernen,
aber so richtig will nicht alles.


LG

Daniela
 
Ich muss nun klären, inwiefern diese Programmbeispiele auch in OpenJDK lauffähig wären bzw. wo auch die Unterschiede zwischen OraceJDK und OpenJDK liegen.
Ist das eine Aufgabe, die dir gestellt wurde? Wenn ja, wie ist denn die genaue Aufgabenstellung?

Die Aufgabe ist etwas unspezifische, es kommt auf die genauen Java-Versionen und die OpenJDK-Builds an, die man vergleicht.
 
Ich muss nun klären, inwiefern diese Programmbeispiele auch in OpenJDK lauffähig wären bzw. wo auch die Unterschiede zwischen OraceJDK und OpenJDK liegen.

Selbstverständlich möchte ich nicht von euch die Aufgabe gelöst bekommen. Könnt ihr mir aber eine Vorgehensweise nennen? Was sollte ich als erstes machen, um die Unterschiede festzustellen, wenn ich nicht alle Programme nun mit einem neuen OpenJDK ausprobieren möchte. Derzeit benutze ich, wie eben auch im Skript Oracle JDK 8.

Bei den JavaFX Programmen habe ich aber bereits festgestellt, dass die Versionen nach 8 (denk ich) nicht mehr so impementiert werden kann.
Also man kann über Google bestimmt einiges heraus finden.

Oracle JDK (SE) ist aber größtenteils identisch mit dem OpenJDK. Die Unterschiede, die mir bekannt sind, sind vor allem im Tooling (z.B. Flight Recorder, der Packager und so) und ggf. auch in der Verfügbarkeit von zusätzlichen Libraries (Da fällt mir vor allem JCE ein, das Oracle noch anbietet zum JDK).

Der nächste Punkt wäre dann zusätzliche Technologien:
- JavaFX hast du erwähnt. Wenn Du ein JDK incl. JavaFX haben willst, dann kannst Du Dir aber ebenso ein OpenJDK mit OpenFX installieren. Aber das ist eine Komponente, die Du z.B. auch separat per Maven laden kannst.
- Java EE - hier hat Oracle ein Bundle mit vielen Libraries und Tools angeboten. Dies ist nun separat zu erstehen. Also die Libs z.B. von Maven Central und dann einen Application Server Deiner Wahl (Reicht Tomcat? Oder wie wäre es mit Wildly? Oder gerne ein beliebigen anderen Application Server).

Meine Erfahrung ist, dass erst einmal alles laufen sollte auch ohne Oracle Zeug zu nutzen. So man gewisse Tools haben will, muss man sich dann ggf. umschauen nach Ersatz. Support gibt es auch für OpenJDK Sprößlinge. (Z.B. Azul mit seinem Zulu und Co. Aber für manche Plattformen geht es auch nicht anders - siehe z.B. AIX und Co auf der Power9 Plattform. Da nimmt man dann das Java, welches von IBM bereit gestellt wird (und auf OpenJDK basiert).

Und es gibt auch einen Test, der die Kompatibilität testet. Das durchlaufen viele JDKs, die auf dem OpenJDK basieren...

Edit: Ist natürlich Flight Recorder und nicht Flight Manager :)
 
Oracle JDK (SE) ist aber größtenteils identisch mit dem OpenJDK. Die Unterschiede, die mir bekannt sind, sind vor allem im Tooling (z.B. Flight Recorder, der Packager und so) und ggf. auch in der Verfügbarkeit von zusätzlichen Libraries (Da fällt mir vor allem JCE ein, das Oracle noch anbietet zum JDK).
Wobei das für die neueren Versionen nicht mehr gilt, und für JCE müsste das für frühe Oracle-Versionen auch nicht gelten.




Um wirklich genau zu sein, müsste man mindeste diese betrachten, und damit hat man nur JavaFX und JCE abgedeckt:

* Oracle JDK 8 vor 8u40
* Oracle JDK 8 vor 8u161
* Oracle JDK 8 ab 8u161
* Oracle 11
* OpenJDK 8
* OpenJDK 8 mit OpenJFX
* OpenJDK 11
* OpenJDK 11 mit OpenJFX
(und die letzten dann noch in OpenJ9-Variante :p )
 
Ist das eine Aufgabe, die dir gestellt wurde? Wenn ja, wie ist denn die genaue Aufgabenstellung?

Die Aufgabe ist etwas unspezifische, es kommt auf die genauen Java-Versionen und die OpenJDK-Builds an, die man vergleicht.
Hi, ja.
Soll dann natürlich auf einige Beispiele aus unserem Skript angewendet werden.

Ich überlege noch, wie ich die im Skript gezeigten Beispiele am besten zusammenfassen kann, sodass ihr euch auch vorstellen könnt, um was für programme es sich handelt.

Gibt es evtl Unterschiede bei der Implementierung von packages?


Danke schon mal für die restlichen Antworten.
Die schau ich mir gleich auch noch an.

Habe nur


Screenshot_20191127-185525_Adobe Acrobat.jpg
 
Zuletzt bearbeitet:
Die genaue Version, die im Skript verwendet wird, ist übrigens Java JDK 8u112

Ich weiß nicht ob relevant, Klassen orerPakete die in den Beispielen genutzt wurden sind z.b.
BufferedReader
FileReader
InputStreamReader
DataInputStream
ObjectOutputStream
u.ä.

Abstrakte Klassen u d Interfaces
Java.util.arraylist

Javafx

Javafx.application.Application
Javafx.geometry.Insets.
Javafx.stage.Stage
Javafx.scene....
U.ä

Ich frage mich nur, wie ich das untersuchen soll?
Außer dass ich die einzelnen programmierbeispiele jetzt in einer openjdk Version teste?
Und es gibt auch einen Test, der die Kompatibilität testet. Das durchlaufen viele JDKs, die auf dem OpenJDK basieren...
Was genau ist damit gemeint?
Kann ich damit bspw ein Programm testen? Und prüfen ob dieses problemlos unter openjdk Luft, oder wie darf ich das verstehen.
 
Ich frage mich nur, wie ich das untersuchen soll?
Außer dass ich die einzelnen programmierbeispiele jetzt in einer openjdk Version teste?
Der einzige Knackpunkt wird JavaFX sein, du kannst dir also überlegen, bei welcher Installation das nicht dabei ist, wo es also nicht laufen wird. Guck dir aber nur Java 8 an, und ignorier alles neuere, solange es nicht explizit gefordert ist

Was genau ist damit gemeint?
Kann ich damit bspw ein Programm testen? Und prüfen ob dieses problemlos unter openjdk Luft, oder wie darf ich das verstehen.
Die Tests testen das JDK selbst, damit ist sichergestellt, dass alle JDK-Varianten die gleichen Anforderungen erfüllen.

Mit eigenen Programmen hat das also nichts zu tun.
 
Der einzige Knackpunkt wird JavaFX sein, du kannst dir also überlegen, bei welcher Installation das nicht dabei ist, wo es also nicht laufen wird. Guck dir aber nur Java 8 an, und ignorier alles neuere, solange es nicht explizit gefordert ist
Ok, dachte ich nach meiner bisherigen Recherche auch etwa das es eigentlich nur FX sein kan... Ich schau aber noch, wie ich das alles dokumentieren und begründen kann. Ist die erste Aufgabe dieser art für mich.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben