JLink

Diskutiere JLink im Deployment Forum; 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....

  1. Roland13
    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 (Text):
    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)
     
  2. Vielleicht hilft dir diese Seite hier weiter (Klick!)
  3. dzim
    dzim Bekanntes Mitglied
    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.
     
  4. Roland13
    Roland13 Mitglied
    Leider scheitere ich schon beim ersten Schritt davon.
    Wenn ich mit folgendem Befehl compiliere funktioniert es:
    Code (Text):
    .\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 (Text):
    .\jdkn10_02\bin\javac -module-source-path src -d out -m demoModule
    liefert den Fehler:
    Code (Text):
    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?
     
  5. mihe7
    mihe7 Bekanntes Mitglied
    Code (Text):

    javac -help
    ...
       --module-source-path <module-source-path>
     
    Ich sehe da zwei Bindestriche vor dem Flag.
     
  6. Hinweis: Du möchtest Java lernen? Vielleicht hilft dir dieser Kurs hier weiter. Sichere dir hier den Zugriff auf umfangreiches Java-Know How und starte richtig durch!
Thema: JLink