JLink

Roland13

Mitglied
Ich verwendet aktuell 2 jar-Dateien: All.jar enthält alle eigenen Teile und AllT.jar enthält alle Treiber von die zum Teil datenbankabhängig sind.
Aktuell starte ich das Programm über eine jnlp-Datei oder alternativ über eine bat bzw sh-Datei, z.B.:
Code:
java -Dfile.encoding=Cp850 -Duser.country=AT -Djava.awt.headless=true -Xmx400m -Xss8m -cp ./jar/All.06:./jar/AllMy8.04 AU_AServer2012 ...
Nun die Frage dazu:
wie erstelle ich eine bzw mehrere exe-Datei mit JLink die beide jar-Dateien enthalten.
Ich bräuchte sie für sämtliche Betriebsysteme, 4 verschiedene Datenbanken (4 verschiedene AllT.jar) und es sollten unterschiedliche Programme aufgerufen werden (AU_Timer, AU_Terminal, AU_AServer2012, Run2_All_Unlimited)
 

dzim

Top Contributor
Erst einmal anfangen zu lesen:

https://docs.oracle.com/javase/9/tools/jlink.htm#JSWOR-GUID-CECAC52B-CFEE-46CB-8166-F17A8E9280E9

https://dzone.com/articles/jlink-in-java-9

https://jaxenter.de/java-9-tutorial-56664
https://jaxenter.de/java-9-tutorial-jlink-59103
https://jaxenter.de/java-9-migration-59148

Dann muss dir klar sein: So etwas wie Delta-Packages wie für Eclipse (speziell SWT, setzt aber immer noch ein lokal installiertes JRE/JDK voraus) gibt es für jlink (oder das leider gerade ins Nirvana beförderte java(fx)packager) nicht.
Das heisst: Willst du eine auf deine Anwendung zugeschnittene Runtime, musst du (wie schon zu java(fx)packager-Zeiten) den Build auf jedem Betriebssystem separat durchführen, für jede DB und jede App-Variation (oder du steuerst das weiterhin über plattformspezifische Skripte mit Program-Parametern). So oder so solltest du dir wohl passenden Build-Skripte für die jeweilige Platform zulegen.

Alles weitere: Studieren! "Leider" musste ich bisher noch nicht jlink verwenden und hab in der Vergangenheit auf javapackager gesetzt. Da dieser mit Java11 weg ist und Kotlin kein Java 9+ braucht, hatte ich bisher noch keine Zeit und Notwendigkeit all unsere Applikationen plus Runtime auf Java 9/10/11 umzustellen und somit jlink nutzen zu müssen. Ich hoffe, die Anstösse helfen dennoch.
 

Roland13

Mitglied
Leider scheitere ich schon beim ersten Schritt davon.
Wenn ich mit folgendem Befehl compiliere funktioniert es:
Code:
.\jdkn10_02\bin\javac -d out src\*.java
Es wird die Test-Klasse Hello vom Verzeichnis src kompiliert und ins Verzeichnis out gegeben.
Aber der Befehl:
Code:
.\jdkn10_02\bin\javac -module-source-path src -d out -m demoModule
liefert den Fehler:
Code:
javac: invalid flag: -module-source-path
Usage: javac <options> <source files>
use --help for a list of possible options
Was muss ich anders angeben, damit ich JLink verwenden kann und den 2. Schritt probieren kann?
 

Ähnliche Java Themen

Neue Themen


Oben