Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?`

osix

Bekanntes Mitglied
Ich werde bald auf JDK 14 (oder 15) umsteigen.

Kann ich dann in Zukunft mit dem Tool "jpackage" exe-Dateien (oder msi-Dateien in Window) erstellen, die dann auf einer Zielumgebung lauffähig sind, ohne das ein JRE installiert sein muß ?

Geht das auch, wenn ich Libraries verwende, wie z.B. Apache POI zum Auslesen von Excel-Dateien ?

Was ist dann der Unterschied zu "jlink" ? Das gibt es wie ich hörte seit JDK 11 (aber auch das kann ich nicht testen, weil ich noch auf JDK 8 bin)

Vielen Dank für eure Antworten !
 

mrBrown

Super-Moderator
Mitarbeiter
Ich werde bald auf JDK 14 (oder 15) umsteigen.
Je nachdem wann "bald" ist, solltest du vielleicht sogar direkt 16 nehmen ;)

Kann ich dann in Zukunft mit dem Tool "jpackage" exe-Dateien (oder msi-Dateien in Window) erstellen, die dann auf einer Zielumgebung lauffähig sind, ohne das ein JRE installiert sein muß ?
Ja.

Geht das auch, wenn ich Libraries verwende, wie z.B. Apache POI zum Auslesen von Excel-Dateien ?

Ja.
Was ist dann der Unterschied zu "jlink" ? Das gibt es wie ich hörte seit JDK 11 (aber auch das kann ich nicht testen, weil ich noch auf JDK 8 bin)
JLink baut die jeweilige Laufzeitumgebung, im wesentlichen die Kombination aus JRE und Dependencies.

Jpackage baut dann daraus eine exe/msi/app/pki/whatever. Jackage ist quasi das schöne Verpacken dessen, was JLink produziert hat :)
 

osix

Bekanntes Mitglied
Das ist ja SUPERPRIMA !
das heißt das ganze Geraffel, das man bisher hatte, mit "(Holy)? Grahl" und andere Tools um eine exekutierbare Datei ohne JRE installiert zu haben, entfällt ? (Zum Glück hab ich mich da noch nicht eingearbeitet....)

Warum gibt es das erst jetzt, und nicht gleich schon seit Java 2 ?

Oder muß Oracle dringend nachlegen, um sich gegen "die Schlange" zu behaupten ?
 

LimDul

Top Contributor
Grundsätzlich musst du dafür Oracle fragen :)

Was ich mir aber vorstellen kann, was dazu beigetragen hat:

Bis Java 8 waren die Release-Zyklen von Java sehr sehr lang. Das heißt, es gab eigentlich immer mur ein relevantes JRE, was irgendwer 1x installieren musste und damit war alles lauffähig. Der Bedarf war daher nicht so hoch, native Anwendung zu bauen.

Zudem "verliert" man mit so Sachen wie jpackage einen Teil der Plattformunabhängigkeit, den Java immer als Vorteil vor sich her trägt. Das nämlich eine Anwendung (=JAR-File) auf allen Plattformen lauffähig ist. Mit diesen Tools baut man für jede Plattform eigene Binaries, die zudem größer sind.

Weiterhin war/ist Java hauptsächlich im Bereich Backend-Anwendung, Enterprise Anwendungen stark. Da reden wir eh über gemanagte Umgebungen, wo die Installation des passenden JDKs/JREs kein größeres Problem ist. Das verpacken in Native Anwendungen hat den Fokus eher auf den "normalen" Endanwender, aber da hatte Java nicht so den Fokus drauf.

Das alles + die Frage wie sehr Oracle Java unterstützt oder nur als Anhängsel mal eingekauft hat - dürfte stark dazu beigetragen haben, dass so ein Tool nicht die höchste Priorität hatte.
 
K

kneitzel

Gast
Also generell ist das entscheidende mit Java 9 gekommen: JLink.

Da wird davon Abstand genommen, dass auf dem System ein Java installiert sein muss (Und ist wohl auch der Grund, warum Oracle kein JRE mehr anbietet für Java 9+).

JLink baut ein sogenanntes Image, das einfach nur eine Verzeichnisstruktur ist, welches u.a. auch ein JRE (teilweise) enthält. Gestartet wird hier die Applikation über ein Script (Incl. all der Unzulänglichkeiten wie z.B. unter Windows ein Fenster, das aufgeht oder unter mac os Security Probleme, weil das Script dann plötzlich Zugriff auf weitere Dateien braucht, die z.B. im User-Ordner liegen könnten ....)

jpackage ist nun ein Einpacken dieser Dateien. Das kann neben einem reinen Installer (msi, rpm, deb, pkg, ...) auch ein sogenannte native Image sein. Das Startscript entfällt und es gibt dann eine Applikation zum starten. Also eine exe unter Windows oder ein .app Ordner unter mac os.

Das sind aber keine native Applikationen! Das sind weiterhin ein (Teil) JRE, das eine VM ausführt und die Klassen lädt.

Die native Übersetzung gibt es aber auch. Da wäre dann vor allem GraalVM zu nennen. Dieses nutzt dann die Tools der Umgebung, um eine native Applikation zu bekommen. Also da wird dann wirklich z.B. mit Visual Studio eine reine exe compiliert. Oder auf Mac mit xcode und unter Linux mit den dort üblichen development essentials (gcc und co)...
 

LimDul

Top Contributor
Ach, was vielleicht auch dazu geführt hat, dass so ein Tool gekommen ist - der zunehmende Container-Wahn (Docker und Co.). Der Fokus - auch im Bereich Enterprise Anwendungen geht vermehrt dahin, nicht auf einem Server X-Anwendungen zu deployen, sondern jeder Anwendung einen - möglichst leichtgewichtigen - Container zur Verfügung zu stellen. Das heißt, man installiert das JRE da dann eh nicht auf Server Ebene, sondern packt es mit in den Container rein, so dass eh jede Anwendung in ihrem Container ihr exklusives JRE hat. Da ist dann der Schritt nicht weit, wenn man eh eine 1 zu 1 Beziehung zwischen Anwendung und JRE hat, dass Problem nicht auf Container-Ebene, sondern auf Anwendungs-Ebene zu lösen.

Die IT Welt ist halt in ständigen Wandel und die Anforderungen, Wünsche und Rahmenbedingungen ändern sich. Früher hätte man Leute für bekloppt erklärt, wenn man für jede 2 MB Java Anwendung ein 100 MB JRE mit dazupackt (Was das an Speicherplatz verbraucht....). Mittlerweile ist das egal.
 

mrBrown

Super-Moderator
Mitarbeiter
oder doch der Kampf gegen die "Schlange" (damit meine ich phython)
Java und Python sind bei Desktop-Anwendungen nicht so sehr direkte Konkurrenten, die besetzen eher beide ihre eigenen "Nischen".

Grund ist eher der schnellere Release-Zyklus, der grundsätzliche Trend zu Containerisierung und der Weggang vom JRE für Endandwender.

Das Äquivalent zu jpackager (=javapackager) gab es schon seit längerem für JavaFX, mit dem Herauslösen von JavaFX aus dem Oracle JDK und auch grundsätzlich machte da eine Generalisierung schon Sinn.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
S Tool mit dem man die Major version im Bytecode patchen kann..? Allgemeine Java-Themen 10
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
M eigenes Seekarten-Tool (oder PlugIn?) Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
D Tool zum skalieren von bildern Allgemeine Java-Themen 4
O Freies Tool zum Jar-File obfuscaten gesucht! Allgemeine Java-Themen 5
E Tool um Methodenaufrufe aus bestimmten Pkg zu finden Allgemeine Java-Themen 2
S Tool um mehrere Klassen in einer Klasse vereinen? Allgemeine Java-Themen 6
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
fastjack Gutes kostenloses Coverage-Tool mit Ignorefunktionen Allgemeine Java-Themen 4
E Tool/Programm zum Zeichnen von UML Diagrammen Allgemeine Java-Themen 14
S jConsole oder anderes Monitoring Tool Allgemeine Java-Themen 5
C Midlet Tool Allgemeine Java-Themen 24
W Requirements an ein Continuous Integration Tool Allgemeine Java-Themen 21
I Tool um Gegenstände zu tauschen Allgemeine Java-Themen 11
S Video Tracking Tool Allgemeine Java-Themen 3
I Statistic-Tool Allgemeine Java-Themen 4
G Java Tool startet von heute auf morgen nicht mehr? Allgemeine Java-Themen 7
C Tool zum verkleinern der Jars? Allgemeine Java-Themen 23
Zed Tool zum drucken von Sourcecode Allgemeine Java-Themen 9
T Suche Tool Allgemeine Java-Themen 11
N Gutes Java to UML Tool Allgemeine Java-Themen 8
W Einfaches Installer/setup tool für java programme das. Allgemeine Java-Themen 4
M Cobertura Code Coverage Tool Allgemeine Java-Themen 5
S VideoStreaming-Tool gesucht! Allgemeine Java-Themen 2
L Java Performance Check Tool Allgemeine Java-Themen 3
J Kleines Tool in Java erstellen? Allgemeine Java-Themen 20
B Tool zum Zeichnen von Systemarchitektur Allgemeine Java-Themen 2
WMaerz Der neue JDK 6 enthält keine javac.exe, tool.jar usw. Allgemeine Java-Themen 6
M Tool zum autom. Client-Update Allgemeine Java-Themen 2
T Tool für Zugriff auf Outlook? Allgemeine Java-Themen 5
M cheat tool für java Allgemeine Java-Themen 11
W VersionsVerwaltung welches Tool Verwendet ihr Allgemeine Java-Themen 12
M Programmierstill: Bitte testen anhand HTML-Tool Allgemeine Java-Themen 18
K eigenes Tool jar - maskieren der Methoden Allgemeine Java-Themen 3
J Java Parser Tool verfügbar? Allgemeine Java-Themen 3
T Warum mein such-tool schneller als Windows such-tool? Allgemeine Java-Themen 5
J Tool gesucht Allgemeine Java-Themen 7
Linad Windows Tool mit Java steuern Allgemeine Java-Themen 9
G Link zu JCreator oder anderem Tool Allgemeine Java-Themen 2
mihe7 Startzeiten mit jpackage Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben