Mit OpenJDK entwickeln aber Oracle SE Runtime installieren?

JavaDaHood

Mitglied
Hallo,

mich würde interessieren ob es möglich ist mit OpenJDK zu entwickeln und die Personen, welche dann die Applikation auf ihren Rechnern nutzen wollen, selbst Oracle SE Runtime etc. installieren müssen?
Ist das lauffähig?
Hintergrund ist der, dass man ja die Oracle-Produkte ohne Lizenz nicht in einen Installer der Applikation packen darf.

OpenJDK und Oracle auf demselben System geht ja wohl nicht.
 

mrBrown

Super-Moderator
Mitarbeiter
mich würde interessieren ob es möglich ist mit OpenJDK zu entwickeln und die Personen, welche dann die Applikation auf ihren Rechnern nutzen wollen, selbst Oracle SE Runtime etc. installieren müssen?
Ja, in den aktuellen Versionen sind beide Versionen (nahezu) gleich. Sowohl Oracle JDK als auch die Oracle OpenJDK-Build als auch alle anderen OpenJDK-Builds bauen auf den gleichen Source auf. Die Unterschiede sind in den meisten Fällen nicht relevant (wenn sie überhaupt existent sind).

Hintergrund ist der, dass man ja die Oracle-Produkte ohne Lizenz nicht in einen Installer der Applikation packen darf.
Man darf Oracle JDK ohne Lizenz nicht mal produktiv nutzen :)
Das geht nur mit den Oracle OpenJDK-Builds oder anderen Builds von anderen "Herstellern".


OpenJDK und Oracle auf demselben System geht ja wohl nicht.
Klar geht das :) man kann problemlos beliebige Versionen gleichzeitig installiert haben.
 

mrBrown

Super-Moderator
Mitarbeiter
Warum lässt du deine Anwender den nicht eine OpenJRE version installieren, auf die du verweißt?
Weil es völlig egal ist, woher der Anwender sein JRE bekommt. Dem dann vorschreiben, welches JRE der nutzen soll, ist ziemlicher Unsinn :)

Wenn schon, dann mit JLink ein pasendes JRE bauen und mitliefern, dann muss der Anwedner gar nichts mehr installieren.
 
K

kneitzel

Gast
Wenn schon, dann mit JLink ein pasendes JRE bauen und mitliefern, dann muss der Anwedner gar nichts mehr installieren.
Das einfach noch etwas ausgeführt / ergänzt:

Aus Sicht des Herstellers (Oracle) werden derzeit zwei Wege angeboten:

a) Mit Java 9 ist JLink mit beim JDK / OpenJDK. Dieses Tool nutzt die definieren Module incl. Abhängigkeiten um dann ein Image zu erstellen, welches neben den Klassen des Projekts und allen Abhängigkeiten noch alle Elemente des JRE enthält, die benötigt werden. Dabei ist zu beachten: Es werden nur die benötigten Module kopiert, d.h. es ist kein komplettes JRE, das kopiert wird.
Das reicht noch nicht ganz, denn man will es ja als Paket Anderen geben können, somit braucht man einen Installer (Windows: msi / exe, Mac: pkg/dmg und Linux: deb/rpm). Da kommt dann jpackage (jep 343) ins Spiel, das genau da ansetzt (Verfügbar ab Java/OpenJDK 13 oder 14 - bin mir da jetzt nicht ganz sicher).

b) GraalVM. Dabei handelt es sich um eine Runtime, deren Ziel die Erstellung sogenannter Native Images ist. Dabei wird mit Hilfe eines Compilers ein ausführbares Executable erzeugt. Hat einiges mehr an Anforderungen (So benötigt man z.B. Visual Studio unter Windows, Xcode auf Macs und gcc und co unter Linux).

Erfahrungsgemäß ist die Einstiegshürde bei GraalVM am höchsten da hier auch schon das Setup mit am komplexesten ist. JLink selbst benötigt aber fast nichts, so dass dies speziell mit Gradle oder Maven extrem einfach zu nutzen ist. (Komplex wird es erst beim Thema Cross-Builds - also wenn man unter einer Plattform etwas für andere Plattformen bauen möchte. Aber es geht. Bei GraalVM ist dies so nur eingeschränkt möglich - so lassen sich z.B. für Mac keine Binaries unter Linux oder Windows bauen ...)

Beide Wege lassen sich über Open Source abdecken. Ersteres setzt nur das OpenJDK voraus, welches unter GPL steht. Da nur fertig übersetzte Dateien kopiert werden und nichts damit zusammen kompiliert wird, gibt es bezüglich des eigenen Codes keine Probleme mit der GPL:
GraalVM ist etwas komplizierter. Hier findet auch die GPL v2 Anwendung, aber mit der CLASSPATH Ausnahme. Damit ist es möglich mit dem eigenen Code native Binaries zu bauen ohne dass man seinen Code unter GPL stellen muss. Siehe diesbezüglich https://www.graalvm.org/faq/ und https://github.com/oracle/graal/blob/master/LICENSE

Das einfach einmal als kleine Ergänzung zu den Aussagen, die bereits getätigt wurden. Meine Empfehlung ist klar, sich den ersten Weg mit JLink und ggf JPackage anzusehen, da hier aus meiner Sicht der Einstieg am einfachsten ist und beim Setup am wenigsten schief gehen kann.
 
K

kneitzel

Gast
Ja, danke für die Ergänzung. Aber auch bei Quarkus hat man die entsprechenden Anforderungen an die native Compiler...

Aber ja: Nett, auch wenn ich noch auf Spring Boot setze. (Aber die Vorteile von Quarkus sehe ich alleine schon im JEE Standard konformen ..., aber evtl. übersehe ich da auch noch etwas, weil ich da bisher nicht den genauen Einblick habe ...)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M OpenJDK Java Basics - Anfänger-Themen 1
M OpenJDK und Oracle JDK proprieträre API Java Basics - Anfänger-Themen 11
Kirby.exe Algorithmus entwickeln Java Basics - Anfänger-Themen 37
C Klassendiagramm aus Java-Code entwickeln Java Basics - Anfänger-Themen 3
M Kalendersystem entwickeln Java Basics - Anfänger-Themen 8
T JDK installieren 64 Bit OS - für 32-Bit entwickeln. Java Basics - Anfänger-Themen 3
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
D Wie genau kann ich in Java Komponenten entwickeln? Java Basics - Anfänger-Themen 6
A java cache löschen/ausschalten bzw. Browser Applets entwickeln Java Basics - Anfänger-Themen 9
J Telefonbuch entwickeln Java Basics - Anfänger-Themen 6
G Eigene kleine Sprache entwickeln Java Basics - Anfänger-Themen 6
M Eine Art Taschenrechner entwickeln? Java Basics - Anfänger-Themen 31
S Chat entwickeln. Java Basics - Anfänger-Themen 11
G Weblogin entwickeln Java Basics - Anfänger-Themen 2
R Algorithmen entwickeln und in Java umsetzen Java Basics - Anfänger-Themen 3
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
P Installation JRE 8u321 startet, geht aber nicht weiter Java Basics - Anfänger-Themen 1
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
L Mergesort (aber anders) Java Basics - Anfänger-Themen 2
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
U Den Kuchen aufteilen - aber wie? (Rebalancing-Algorithmus) Java Basics - Anfänger-Themen 14
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
AGW App programmiert lassen, aber Änderungen vornehmen Java Basics - Anfänger-Themen 13
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Fehler, aber ich weiß nicht warum Java Basics - Anfänger-Themen 3
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
J ShortCut erstellen aber wie die dll einbinden Java Basics - Anfänger-Themen 3
I "\n" aus ArrayList enfernen, aber wie?! Java Basics - Anfänger-Themen 4
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
J JavaEditor kompiliert aber startet nicht Java Basics - Anfänger-Themen 1
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
O Array benutzen aber WIE? Java Basics - Anfänger-Themen 18
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
A Variabler Rekursionsaufruf, aber wie? Java Basics - Anfänger-Themen 6
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
K Armstrong Programm geht nur bis 1000, aber nicht weiter Java Basics - Anfänger-Themen 2
pkm Best Practice BufferedImage in JPane darstellen - aber wie? Java Basics - Anfänger-Themen 22
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
D int x in System.out.println(), aber wie? Java Basics - Anfänger-Themen 1
J Serialisieren, aber wie? Java Basics - Anfänger-Themen 3
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
snipesss Java-Code gedownloaded, funktioniert aber nicht? Java Basics - Anfänger-Themen 9
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
P Irgendein billiger Fehler aber ich find ihn nicht Java Basics - Anfänger-Themen 16
Thallius Date für DatePicker formatieren aber wie? Java Basics - Anfänger-Themen 9
J Nullpointer aber wo? Java Basics - Anfänger-Themen 12
E Dumme Frage, aber... Java Basics - Anfänger-Themen 15
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
Tacofan Schleife aber nur wie? Java Basics - Anfänger-Themen 10
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
J Programm funktioniert aber unsafe operations? Java Basics - Anfänger-Themen 3
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
D 0 Point Exeption... aber warum? Java Basics - Anfänger-Themen 3
D Compiler-Fehler NullPointerExeption aber Ecplise zeigt keine Fehler an?! Java Basics - Anfänger-Themen 8
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Ping Pong Score Zähler,aber wie? Java Basics - Anfänger-Themen 3
Z Zwei Images auf einem JFrame - Aber nur eins wird angezeigt! Java Basics - Anfänger-Themen 5
S OOP Die Methode funktioniert, aber wieso? Java Basics - Anfänger-Themen 2
I Programm testen, aber wie? Java Basics - Anfänger-Themen 14
T String simpel aber sicher verschlüsseln Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben