Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen wil (https://www.delphipraxis.net/216043-wie-geht-man-mit-dem-java-runtime-environment-um-wenn-man-jar-dateien-ausfuehren-wil.html)

bcvs 18. Okt 2024 11:13

Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen wil
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

ich will eine .jar-Datei mit ausliefern und aus meinem Delphi-Programm heraus ausrufen. Konkret geht es um die Mustang-CLI-2.14.0.jar vom Mustangprojekt für ZuGFeRD-Rechnungen.

Jetzt kann ich ja nicht davon ausgehen, dass auf jedem Ziel-Rechner beim Kunden das Java Runtime Environment (JRE) installiert ist. Das JRE mit auszuliefern widerspricht aber anscheinend den Lizenzbestimmungen von Oracle (s. Screenshot von der Installation des JRE).

Und auf https://www.oracle.com/downloads/lic...-license1.html steht:

Zitat:

You may not: ... make the Programs available in any manner to any third party (other than Contractors acting on Your behalf as set forth in this Agreement)
Wie kriege ich denn jetzt das JRE auf den Kundenrechner? Oder wie geht ihr damit um?

sh17 18. Okt 2024 12:21

AW: Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen
 
Man nimmt eine offene JRE, z.B: https://github.com/adoptium

https://github.com/adoptium/temurin1..._17.0.6_10.zip

himitsu 18. Okt 2024 13:23

AW: Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen
 
Siehe auch im Delphi-Setup, bzw. Tools > Platformen verwalten
do findest du auch den Namen einer offnenen JRE, welche genutzt werden kann.

Und dann ab in die Sandbox und schauchen, ob auch alles geht (dabei ist).
https://www.delphipraxis.net/207151-...s-sandbox.html

bcvs 18. Okt 2024 14:52

AW: Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen
 
Danke euch, damit komme ich klar.

bcvs 14. Jan 2025 08:15

AW: Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen
 
Eine weitere Frage in dem Zusammenhang:

Es hat sich herausgestellt, dass auf den Kundenrechnern teilweise ältere Java-Versionen vorhanden sind, mit denen das Mustangprojekt nicht klarkommt.

Jetzt könnte ich natürlich die freie JRE mit deren Installations-Setup installieren. Dann trägt sie sich in den Environment-Path des Kundenrechners ein und sorgt so dafür, dass sie evtl. auch von anderer Software auf dem Kundenrechner verwendet wird, was ja nicht unbedingt gewollt wird.

Am liebsten würde ich "meine" JRE mit einer eigenen Installations-Routine geräuschlos in meinen Programm-Ordner installieren und von da aus verwwenden. Dann wäre sie weitgehend unsichtbar für andere Programme und ich hätte die Sicherheit, dass meine Software funktioniert ohne eine passende JRE suchen und/oder einstellen zu müssen.

Ist das legitim? Wenn das jeder macht, gibt es irgendwann sehr viele JREs auf dem Rechner, obwohl theoretisch eine reichen würde.
Wie macht Ihr das?

gubbe 14. Jan 2025 09:06

AW: Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen
 
Zitat:

Zitat von bcvs (Beitrag 1545155)
...
Am liebsten würde ich "meine" JRE mit einer eigenen Installations-Routine geräuschlos in meinen Programm-Ordner installieren und von da aus verwwenden. Dann wäre sie weitgehend unsichtbar für andere Programme und ich hätte die Sicherheit, dass meine Software funktioniert ohne eine passende JRE suchen und/oder einstellen zu müssen.

Ist das legitim? Wenn das jeder macht, gibt es irgendwann sehr viele JREs auf dem Rechner, obwohl theoretisch eine reichen würde.
Wie macht Ihr das?

So viele Javaprogramme hat man üblicherweise auch nicht auf dem Rechner, dass man irgendwann sehr viele JREs hat. Ich würde auch eine mit dem Programm bündeln, die nicht installiert werden muss, um Probleme zu vermeiden.
So kannst Du sicherstellen, dass Dein Programm damit funktioniert und Du durch Deine Installation keine anderen Programme beeinflusst.

Inzwischen ist Java auch recht modular aufgebaut, so dass Du eine "Custom Runtime" erstellen kannst, die nur die für Dein Programm benötigten Bibliotheken enthält und damit deutlich kleiner wird, als das allgemeine JRE.
Es gibt entsprechende Anleitungen, z.B. bei Adoptium. Suche nach dem Begriff "jlink".

Wenn Dein Programm in einem Netzwerk auf verschiedenen Arbeitsplätzen läuft, könnte es vielleicht interessant sein, den Java-Teil auszulagern auf einen Server und dort nur einmal zentral zu installieren, um das Mustangprojekt als Dienst aufzurufen.

Nachdenken würde ich vielleicht noch über den Sicherheitsaspekt. Wenn Du die JRE mitlieferst, musst Du das natürlich im Auge behalten, wenn es sicherheitsrelevante Updates gibt. Installiert der Kunde die JRE selbst, wäre er verantwortlich für Updates. Aber wenn da sowieso schon ältere Versionen vorhanden sind, hat das beim Kunden bisher ja anscheinend nicht geklappt mit dem Aktualisieren :)

Edit:

Der Vollständigkeit halber hier noch der Link zur Anleitung bei Adoptium:
https://adoptium.net/de/blog/2021/10...e-own-runtime/

Also mit jdeps schauen, was benötigt wird und mit jlink eine eigene JRE erstellen.

bcvs 14. Jan 2025 11:21

AW: Wie geht man mit dem Java Runtime Environment um, wenn man .jar-Dateien ausführen
 
Alles klar, danke für den Tip


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz