Java Images

Oneixee5

Top Contributor
Hallo, ich habe bisher mit Java keine ernsthaften Desktop- bzw. GUI-Anwendungen erstellt - jedenfalls nicht nach der Version 1.4 (2003/2004). Wie verhält sich das mit den Java-Images auf unterschiedlichen Betriebssystemen? Sind die genauso überall lauffähig wir Jar-Dateien? Ich kann mir das fast nicht vorstellen. Kann ich evtl. mit Maven Java-Images für Windows und Linux bauen? Möglichst auf einen Rutsch. Peinlicherweise hat mich gerade mein Chef gefragt und ich habe keine Ahnung davon. Ich weiß nur, dass man keine Java-Runtime mehr braucht, aber das ist auch schon alles.
 

KonradN

Super-Moderator
Mitarbeiter
Hallo, ich habe bisher mit Java keine ernsthaften Desktop- bzw. GUI-Anwendungen erstellt - jedenfalls nicht nach der Version 1.4 (2003/2004). Wie verhält sich das mit den Java-Images auf unterschiedlichen Betriebssystemen? Sind die genauso überall lauffähig wir Jar-Dateien? Ich kann mir das fast nicht vorstellen. Kann ich evtl. mit Maven Java-Images für Windows und Linux bauen? Möglichst auf einen Rutsch. Peinlicherweise hat mich gerade mein Chef gefragt und ich habe keine Ahnung davon. Ich weiß nur, dass man keine Java-Runtime mehr braucht, aber das ist auch schon alles.
Nein, JPackage erzeugt ein AppImage für genau die eigene Plattform. Und das ist ja u.a. eine JRE für die Plattform sowie ggf. Plattform bezogener Dateien (z.B. bei JavaFX oder anderen Hardware Nahen Abhängigkeiten).

Das bedeutet, dass du es auf den jeweiligen Plattformen bauen musst.

Dies kann man aber z.B. über ci/cd Pipelines machen mit entsprechenden Workern und so.
 

KonradN

Super-Moderator
Mitarbeiter
Das ist immer noch Java Bytecode + JRE + einer EXE die das alles startet.

Hier mal einfach der Inhalt eines Ergebnisses auf einem Debian System mit Java 21 (runtime habe ich nur ein Unterverzeichnis gezeigt - das sollte ausreichen)

Code:
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$ ls
bin  lib
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$ ls bin
javafxapp
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$ ls lib
app  javafxapp.png  libapplauncher.so  runtime
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$ ls lib/app
annotations-24.1.0.jar      javafx-base-21.0.3.jar        javafx-controls-21.0.3-linux.jar  javafx-graphics-21.0.3.jar        javafx-media-21.0.3-linux.jar
javafxapp-1.0-SNAPSHOT.jar  javafx-base-21.0.3-linux.jar  javafx-fxml-21.0.3.jar            javafx-graphics-21.0.3-linux.jar  javafx-web-21.0.3.jar
javafxapp.cfg               javafx-controls-21.0.3.jar    javafx-fxml-21.0.3-linux.jar      javafx-media-21.0.3.jar           javafx-web-21.0.3-linux.jar
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$ ls lib/runtime
conf  legal  lib  release
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$ ls lib/runtime/lib
classlist     jvm.cfg             libextnet.so       libj2pkcs11.so  libjimage.so  lible.so                libnio.so           libverify.so          server
ct.sym        libattach.so        libfontmanager.so  libjaas.so      libjli.so     libmanagement_agent.so  libprefs.so         libzip.so             tzdb.dat
jexec         libawt_headless.so  libfreetype.so     libjavajpeg.so  libjsig.so    libmanagement_ext.so    librmi.so           modules
jfr           libawt.so           libinstrument.so   libjava.so      libjsound.so  libmanagement.so        libsctp.so          psfontj2d.properties
jrt-fs.jar    libawt_xawt.so      libj2gss.so        libjawt.so      libjsvml.so   libmlib_image.so        libsplashscreen.so  psfont.properties.ja
jspawnhelper  libdt_socket.so     libj2pcsc.so       libjdwp.so      liblcms.so    libnet.so               libsyslookup.so     security
konrad@debian:~/Projects/JavaFXMavenApp/target/jpackage/javafxapp$

Du kannst also in app sehr gut die Abhängigkeiten als auch das eigentliche jar File (javafxapp-1.0-SNAPSHOT.jar) erkennen und in lib hast Du die JRE (mit den Modulen, die Du brauchst).

Die Native Übersetzung könntest Du aber auch probieren. Da wäre dann GraalVM mit NativeImage vermutlich das Tool der Wahl. Hier habe ich aber Probleme gehabt, das mit JavaFX zum laufen zu kriegen. In dem JavaMavenApp Repository auf GitHub von mir wäre das aber auch als Option mit drin. Aber das Kernproblem hier ist nach meinem Verständnis dann, dass ja die Klassen native übersetzt werden und dann so mit dem Classloader nicht mehr funktionieren. Aber GraalVM habe ich - auch auf Grund von möglichen Lizenz-Problemen - nicht weiter vertieft (Ich weiss nicht, ob die Lizenz problematisch sein könnte - es ist Oracle und auf den ersten Blick war die Lizenz nicht wirklich klar/sauber abzugrenzen.)

Was aber wichtig ist: GraalVM braucht auch die entsprechenden Build Systeme und die sind deutlich schwerer aufzusetzen (Windows halt mit der passenden Visual Studio Version und so ...). Also nicht ganz so einfach mit einem 08/15 Worker bei GitHub oder einem ähnlichen Anbieter.
 

KonradN

Super-Moderator
Mitarbeiter
Ach ja: Spiel doch einfach etwas herum:

Was ich da als sinnvoll erachte in einem Maven Projekt kannst Du ja einfach ignorieren. Mit Java 21 kannst Du direkt ein mvnw -Pimage install machen und bekommst dann ein target/jpackage. Und dann einfach mal auf diversen Plattformen, die dir zur Verfügung stehen, ausprobieren.
 

Oneixee5

Top Contributor
Vielen Dank für die Infos. Ich werde das mal ausprobieren. Vermutlich wird das aber nicht direkt zu meiner Aufgabe werden, eher so am Rande.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Maven NetBeans Java Application ohne Manifest-Datei Tools - Maven, Gradle, Ant & mehr 7
B Kleines Werkzeug zum Anzeigen von Mehrfachvererbung mit Interfaces in Java Tools - Maven, Gradle, Ant & mehr 5
D Java Programm veröffentlichen am Besten modular Tools - Maven, Gradle, Ant & mehr 28
H Maven Verbindung Java Projekt und Jenkins Build job Tools - Maven, Gradle, Ant & mehr 21
Q Java Eclipse Fehlermeldung bei Installation Tools - Maven, Gradle, Ant & mehr 3
D Maven Abhängigkeiten überprüfen auf Kompatibilität mit einer anderen Java-Version Tools - Maven, Gradle, Ant & mehr 11
R Webstart Java 11 ohne Web Start Tools - Maven, Gradle, Ant & mehr 5
M Java mit Modulen kompilieren klappt nicht Tools - Maven, Gradle, Ant & mehr 9
R Java mitnehmen Tools - Maven, Gradle, Ant & mehr 14
W Java on Cloud - which Provider Tools - Maven, Gradle, Ant & mehr 0
S Python-Code mit Java ausführen Tools - Maven, Gradle, Ant & mehr 13
B Java auf Smartcards?! Tools - Maven, Gradle, Ant & mehr 9
J Java App im Mac Store veröffentlichen Tools - Maven, Gradle, Ant & mehr 0
M Maven (Java EE, WAR) Eigener Buildschritt - Manipulation von Dateien Tools - Maven, Gradle, Ant & mehr 4
VfL_Freak Desktopverknüpfung über den Java-Cache erstellen Tools - Maven, Gradle, Ant & mehr 0
S New version released: Java Switcher for 1.8.0_112 and Windows x64 only Tools - Maven, Gradle, Ant & mehr 4
S Java 32 Bit and 64 Bit Switcher for Windows XX [64 Bit only] Tools - Maven, Gradle, Ant & mehr 0
F java.lang.ClassNotFoundException auf anderem Rechner Tools - Maven, Gradle, Ant & mehr 0
S Applet Java Testen - Ergebnis wird nicht angezeigt, nur leeres Feld Tools - Maven, Gradle, Ant & mehr 15
T Java Applikation an Clients verteilen Tools - Maven, Gradle, Ant & mehr 5
S Java Web Start wird nicht ausgeführt Tools - Maven, Gradle, Ant & mehr 1
J Applet Java fragt Verzeichnis ab Tools - Maven, Gradle, Ant & mehr 0
J Applet .java.policy und neue Javaversion Tools - Maven, Gradle, Ant & mehr 4
R Maven woher gewusst, dass mein Java-Code commons-lang braucht? Tools - Maven, Gradle, Ant & mehr 0
O Applet Selbstsignierte Applets in Java 7 Update 51 Tools - Maven, Gradle, Ant & mehr 19
M Was muss man installiert haben damit Java Applets im Browser gehen Tools - Maven, Gradle, Ant & mehr 2
T ClassNotFound erfordert ständiges Löschen des Java-Cache. Tools - Maven, Gradle, Ant & mehr 2
P Applet Java Applet läuft im Browser nicht mehr (HTTPClient - NoClassDefFoundError) Tools - Maven, Gradle, Ant & mehr 3
B Webstart Java Webstart hängt sich beim Laden auf! Tools - Maven, Gradle, Ant & mehr 8
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
ChrisX Java im Autostart sinnvoll? Tools - Maven, Gradle, Ant & mehr 4
HaukeG Maven Java Web-Application in Eclipse - Abhängigkeiten zwischen den Projekten Tools - Maven, Gradle, Ant & mehr 10
F [Java Webstart] Webspace gesucht... Tools - Maven, Gradle, Ant & mehr 6
M Java Application startet bei verschiedenen JRE's nicht Tools - Maven, Gradle, Ant & mehr 7
B Wie kann man unter Windows 7 file types mit Java Applikationen verknüpfen? Tools - Maven, Gradle, Ant & mehr 5
D Java mit .bat starten Tools - Maven, Gradle, Ant & mehr 1
S Java Applikation als Windows Service einrichten Tools - Maven, Gradle, Ant & mehr 23
C Aufruf eines Java Programms mittels ant MIT Parametern Tools - Maven, Gradle, Ant & mehr 2
P Java Applikation auf Server Tools - Maven, Gradle, Ant & mehr 7
schlingel Applet Java-Sicherheitswarnung wegen alter JRE-Version Tools - Maven, Gradle, Ant & mehr 13
S Applet Applet mit C# öffnen: java.lang.SecurityException: Permission denied (WinXP) Tools - Maven, Gradle, Ant & mehr 8
W CVS Keine Verbindung zu cvs.dev.java.net möglich Tools - Maven, Gradle, Ant & mehr 5
E Java Applet bearbeiten Tools - Maven, Gradle, Ant & mehr 8
J Webstart Grenzen von Java Webstart? Tools - Maven, Gradle, Ant & mehr 2
B Buckminster: Plugin Version in Java source File einfügen Tools - Maven, Gradle, Ant & mehr 4
T Ant ant-variable aus Java Tools - Maven, Gradle, Ant & mehr 4
F Ant ANT javac class-Dateien von entfernten JAVA-Klassen löschen Tools - Maven, Gradle, Ant & mehr 11
J Java Webstart beschleunigen und Verlauf anzeigen Tools - Maven, Gradle, Ant & mehr 3
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
L PHP + Java Applet Kommunikation Tools - Maven, Gradle, Ant & mehr 9
S Probleme mit Kombination Java JApplet;MySQL;Webserver Tools - Maven, Gradle, Ant & mehr 3
nabla Einbinden von externen Java und C Bibliotheken Tools - Maven, Gradle, Ant & mehr 5
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
A Java-Applet Sandbox deaktiviren? Tools - Maven, Gradle, Ant & mehr 2
B Java-Applet geht nicht (auf dem Webserver) Tools - Maven, Gradle, Ant & mehr 9
I In Java Applets drucken Tools - Maven, Gradle, Ant & mehr 2
D Java Webstart startet .jar file nicht Tools - Maven, Gradle, Ant & mehr 13
S Java Applet per Klick starten? Tools - Maven, Gradle, Ant & mehr 6
U Java Webstartproblem ab Version 1.6_11 Tools - Maven, Gradle, Ant & mehr 7
S Java Ant per Console starten Tools - Maven, Gradle, Ant & mehr 3
M Java Applet - enforce use of older JRE Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
M Java Swing Anwendung als Webanwendung Tools - Maven, Gradle, Ant & mehr 6
Raidri Java Programme installieren Tools - Maven, Gradle, Ant & mehr 5
S Java Webstart Tools - Maven, Gradle, Ant & mehr 3
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
S Java-Applet Steuerung IO Karte am Drucker-Port Tools - Maven, Gradle, Ant & mehr 4
T Java Anwendung installieren Tools - Maven, Gradle, Ant & mehr 7
T Statistiken zur Verbreitung von Java Tools - Maven, Gradle, Ant & mehr 5
D Java-Anwendung mit Bildern (JPG) verfügbar machen Tools - Maven, Gradle, Ant & mehr 7
F Kleines Java-Programm geschrieben, 30 Dateien? Tools - Maven, Gradle, Ant & mehr 16
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
P Java-Applet funktioniert unter WINXP nicht Tools - Maven, Gradle, Ant & mehr 2
N Java 1.6 Applet auf älteren Versionen ausführbar? Tools - Maven, Gradle, Ant & mehr 4
F Probleme mit Java WebStart; Hauptklasse konnte nicht gef. Tools - Maven, Gradle, Ant & mehr 18
J Java Applet bei mouseover mit Tooltip Tools - Maven, Gradle, Ant & mehr 3
M Autostart unter Windows für Java Aplikation Tools - Maven, Gradle, Ant & mehr 10
J ANT: run/java: NoClassDefFoundError Tools - Maven, Gradle, Ant & mehr 2
C chatProgramm in java Tools - Maven, Gradle, Ant & mehr 5
L Java Webstart Tools - Maven, Gradle, Ant & mehr 6
B Java-Applet startet nicht aus dem Browser Tools - Maven, Gradle, Ant & mehr 1
K Java-Applet Uhrzeit Tools - Maven, Gradle, Ant & mehr 2
T Java Applett: Rückwärtskompabilität Tools - Maven, Gradle, Ant & mehr 2
G JApplet parallel zu Java-Applikation entwickeln Tools - Maven, Gradle, Ant & mehr 11
H [gelöst] Java Stimmgerät bzw. Frequenzerzeugung gesucht Tools - Maven, Gradle, Ant & mehr 2
A RSS-Feeds auslesen mit JAVA speichern und Applet übergeben Tools - Maven, Gradle, Ant & mehr 2
D Java Web Start im Browser laufen lassen Tools - Maven, Gradle, Ant & mehr 10
W Java-Applet Funzt ned! Tools - Maven, Gradle, Ant & mehr 3
V dreieck ausfüllen (java) Tools - Maven, Gradle, Ant & mehr 6
M Java Security Tools - Maven, Gradle, Ant & mehr 2
B Java Applet im Systemtray Tools - Maven, Gradle, Ant & mehr 2
P Java Applets und Power Point Tools - Maven, Gradle, Ant & mehr 11
G Jar File Java Web Start Tools - Maven, Gradle, Ant & mehr 2
H Java 1.4 Applet, IE 6 und Java 6 funktioniert nicht zusammen Tools - Maven, Gradle, Ant & mehr 2
B Jukebox mit Java [Html Applet] Tools - Maven, Gradle, Ant & mehr 11
J Gästebuch mit Java Tools - Maven, Gradle, Ant & mehr 11
A Hilfe! Java Applet Lake von Anfy - wie in HP einbinden? Tools - Maven, Gradle, Ant & mehr 25
S bilder mit java beschreiben? Tools - Maven, Gradle, Ant & mehr 8
G rotierende Bilder im Java Applet Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen


Oben