xaverW / MTPlayer

Das Programm durchsucht die Online-Mediatheken verschiedener Sender, listet die gefundenen Sendungen auf, die dann nach Beiträgen durchsucht, angesehen oder aufgezeichnet werden können.
https://www.p2tools.de/mtplayer/
24 stars 0 forks source link

support for aarch64? #21

Open egabosh opened 1 month ago

egabosh commented 1 month ago

Moin,

looks like MTPlayer doesn't work on aarch64. Tried with Raspberry Pi 5:

s:~/MTPlayer$ ./MTPlayer__Linux.sh
dann Java vom System
Okt. 15, 2024 10:38:05 PM com.sun.javafx.application.PlatformImpl startup
WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @26ee6b5e'
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.base/java.lang.Thread.run(Thread.java:840)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:43)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:42)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.base/java.lang.Thread.run(Thread.java:840)
Loading library glass from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglass.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglass.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
[...]

Am I right and is there a support planned?

thx olli

xaverW commented 1 month ago

Hi,

da scheint JavaFx zu fehlen. Das wird mit dem Programm nur für x86 mitgeliefert. Das müsstest du wahrscheinlich noch installieren. Hab da auch was im Netz gefunden:

https://forums.raspberrypi.com/viewtopic.php?t=330045

sudo apt install openjfx

Ich habe keinen Raspi am Laufen, kanns leider nicht testen.

Würde mich interessieren, obs damit dann geht.

egabosh commented 1 month ago

Moin,

danke für die Hilfe! Leider hat das nicht geholfen.

$ sudo apt install openjfx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  openjfx-source
The following NEW packages will be installed:
  openjfx openjfx-source
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 6,081 kB/39.8 MB of archives.
After this operation, 6,714 kB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian bookworm/main arm64 openjfx arm64 11.0.11+1-3.1~bpo12+1~rpt1 [6,472 B]
Get:2 http://archive.raspberrypi.org/debian bookworm/main arm64 openjfx-source all 11.0.11+1-3.1~bpo12+1~rpt1 [6,075 kB]
Fetched 6,081 kB in 7s (932 kB/s)                                              
Selecting previously unselected package openjfx.
(Reading database ... 186543 files and directories currently installed.)
Preparing to unpack .../openjfx_11.0.11+1-3.1~bpo12+1~rpt1_arm64.deb ...
Unpacking openjfx (11.0.11+1-3.1~bpo12+1~rpt1) ...
Selecting previously unselected package openjfx-source.
Preparing to unpack .../openjfx-source_11.0.11+1-3.1~bpo12+1~rpt1_all.deb ...
Unpacking openjfx-source (11.0.11+1-3.1~bpo12+1~rpt1) ...
Setting up openjfx (11.0.11+1-3.1~bpo12+1~rpt1) ...
Setting up openjfx-source (11.0.11+1-3.1~bpo12+1~rpt1) ...

Hier noch weitere Fehlermeldungen:

$ ./MTPlayer__Linux.sh
dann Java vom System
Okt. 22, 2024 1:33:43 PM com.sun.javafx.application.PlatformImpl startup
WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @26ee6b5e'
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_es2.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.base/java.lang.Thread.run(Thread.java:840)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libprism_sw.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:43)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:42)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.base/java.lang.Thread.run(Thread.java:840)
Loading library glass from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglass.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglass.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglass.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglass.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:112)
    at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:120)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$static$1(GtkApplication.java:86)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.glass.ui.gtk.GtkApplication.<clinit>(GtkApplication.java:85)
    at com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:40)
    at com.sun.glass.ui.Application.run(Application.java:146)
    at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:290)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:292)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
    at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:671)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
    at java.base/java.lang.Thread.run(Thread.java:840)
Loading library glassgtk3 from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglassgtk3.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglassgtk3.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglassgtk3.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libglassgtk3.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$new$5(GtkApplication.java:173)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.glass.ui.gtk.GtkApplication.<init>(GtkApplication.java:162)
    at com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:40)
    at com.sun.glass.ui.Application.run(Application.java:146)
    at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:290)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:292)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
    at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:671)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
    at java.base/java.lang.Thread.run(Thread.java:840)
Gtk-Message: 13:33:43.406: Failed to load module "canberra-gtk-module"
[13:33:43] INFORMATION:  Logfile anlegen: /home/user/.p2Mtplayer/Log
[13:33:43] INFORMATION:  Konfig existiert nicht!
[13:33:43] INFORMATION:  Weder Konfig noch Backup konnte geladen werden!
Loading library javafx_font from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.javafx.font.PrismFontFactory.lambda$static$0(PrismFontFactory.java:97)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.javafx.font.PrismFontFactory.<clinit>(PrismFontFactory.java:95)
    at com.sun.javafx.text.PrismTextLayout.<clinit>(PrismTextLayout.java:66)
    at com.sun.javafx.text.PrismTextLayoutFactory.<clinit>(PrismTextLayoutFactory.java:33)
    at com.sun.javafx.tk.quantum.QuantumToolkit.getTextLayoutFactory(QuantumToolkit.java:1157)
    at com.sun.javafx.scene.control.skin.Utils.<clinit>(Utils.java:98)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:467)
    at com.sun.javafx.css.StyleManager.getURL(StyleManager.java:879)
    at com.sun.javafx.css.StyleManager.loadStylesheetUnPrivileged(StyleManager.java:1097)
    at com.sun.javafx.css.StyleManager.loadStylesheet(StyleManager.java:952)
    at com.sun.javafx.css.StyleManager._setDefaultUserAgentStylesheet(StyleManager.java:1454)
    at com.sun.javafx.css.StyleManager.setUserAgentStylesheets(StyleManager.java:1305)
    at com.sun.javafx.application.PlatformImpl.lambda$_setPlatformUserAgentStylesheet$20(PlatformImpl.java:930)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.javafx.application.PlatformImpl._setPlatformUserAgentStylesheet(PlatformImpl.java:929)
    at com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:722)
    at com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:686)
    at javafx.scene.control.Control.<clinit>(Control.java:98)
    at de.p2tools.p2lib.dialogs.dialog.P2DialogExtra.<init>(P2DialogExtra.java:48)
    at de.p2tools.mtplayer.gui.startdialog.StartDialogController.<init>(StartDialogController.java:82)
    at de.p2tools.mtplayer.controller.ProgStartBeforeGui.workBeforeGui(ProgStartBeforeGui.java:53)
    at de.p2tools.mtplayer.MTPlayer.start(MTPlayer.java:55)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:839)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:263)
    at java.base/java.lang.Thread.run(Thread.java:840)
Loading library javafx_font_freetype from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_freetype.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_freetype.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_freetype.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_freetype.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.javafx.font.freetype.OSFreetype.lambda$static$0(OSFreetype.java:38)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.javafx.font.freetype.OSFreetype.<clinit>(OSFreetype.java:37)
    at com.sun.javafx.font.freetype.FTFactory.getFactory(FTFactory.java:47)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at com.sun.javafx.font.PrismFontFactory.getFontFactory(PrismFontFactory.java:208)
    at com.sun.javafx.font.PrismFontFactory.getFontFactory(PrismFontFactory.java:197)
    at com.sun.prism.GraphicsPipeline.getFontFactory(GraphicsPipeline.java:156)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at com.sun.javafx.font.PrismFontLoader.getFontFactoryFromPipeline(PrismFontLoader.java:271)
    at com.sun.javafx.font.PrismFontLoader.loadFont(PrismFontLoader.java:212)
    at javafx.scene.text.Font.<init>(Font.java:346)
    at javafx.scene.text.Font.getDefault(Font.java:110)
    at javafx.scene.CssStyleHelper.<clinit>(CssStyleHelper.java:1686)
    at javafx.scene.Node.reapplyCss(Node.java:9482)
    at javafx.scene.Node.reapplyCSS(Node.java:9445)
    at javafx.scene.Node.invalidatedScenes(Node.java:1068)
    at javafx.scene.Node.setScenes(Node.java:1133)
    at javafx.scene.Parent.scenesChanged(Parent.java:773)
    at javafx.scene.Node.invalidatedScenes(Node.java:1066)
    at javafx.scene.Node.setScenes(Node.java:1133)
    at javafx.scene.Scene$8.invalidated(Scene.java:1244)
    at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
    at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
    at javafx.scene.Scene.setRoot(Scene.java:1196)
    at javafx.scene.Scene.<init>(Scene.java:360)
    at javafx.scene.Scene.<init>(Scene.java:211)
    at de.p2tools.p2lib.dialogs.dialog.P2Dialog.init(P2Dialog.java:88)
    at de.p2tools.p2lib.dialogs.dialog.P2DialogExtra.init(P2DialogExtra.java:149)
    at de.p2tools.mtplayer.gui.startdialog.StartDialogController.<init>(StartDialogController.java:85)
    at de.p2tools.mtplayer.controller.ProgStartBeforeGui.workBeforeGui(ProgStartBeforeGui.java:53)
    at de.p2tools.mtplayer.MTPlayer.start(MTPlayer.java:55)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:839)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:263)
    at java.base/java.lang.Thread.run(Thread.java:840)
Exception in Application start method
Loading library javafx_font_pango from resource failed: java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_pango.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_pango.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
java.lang.UnsatisfiedLinkError: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_pango.so: /home/user/.openjfx/cache/21.0.3+2/aarch64/libjavafx_font_pango.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1957)
    at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
    at com.sun.javafx.font.freetype.OSPango.lambda$static$0(OSPango.java:37)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.javafx.font.freetype.OSPango.<clinit>(OSPango.java:36)
    at com.sun.javafx.font.freetype.PangoGlyphLayout.<clinit>(PangoGlyphLayout.java:45)
    at com.sun.javafx.font.freetype.FTFactory.createGlyphLayout(FTFactory.java:87)
    at com.sun.javafx.text.GlyphLayout.newInstance(GlyphLayout.java:407)
    at com.sun.javafx.text.GlyphLayout.<clinit>(GlyphLayout.java:402)
    at com.sun.javafx.text.PrismTextLayout.buildRuns(PrismTextLayout.java:818)
    at com.sun.javafx.text.PrismTextLayout.layout(PrismTextLayout.java:1070)
    at com.sun.javafx.text.PrismTextLayout.ensureLayout(PrismTextLayout.java:230)
    at com.sun.javafx.text.PrismTextLayout.getBounds(PrismTextLayout.java:256)
    at javafx.scene.text.Text.getLogicalBounds(Text.java:432)
    at javafx.scene.text.Text.getYRendering(Text.java:1098)
    at javafx.scene.text.Text$TextAttribute$11.computeValue(Text.java:1821)
    at javafx.scene.text.Text$TextAttribute$11.computeValue(Text.java:1813)
    at javafx.beans.binding.ObjectBinding.get(ObjectBinding.java:168)
    at javafx.beans.binding.ObjectExpression.getValue(ObjectExpression.java:49)
    at com.sun.javafx.binding.ExpressionHelper.addListener(ExpressionHelper.java:64)
    at javafx.beans.binding.ObjectBinding.addListener(ObjectBinding.java:86)
    at javafx.beans.property.ObjectPropertyBase.bind(ObjectPropertyBase.java:174)
    at javafx.scene.text.Text$TextAttribute.caretShapeProperty(Text.java:1829)
    at javafx.scene.text.Text.caretShapeProperty(Text.java:953)
    at javafx.scene.control.skin.TextFieldSkin.<init>(TextFieldSkin.java:246)
    at javafx.scene.control.TextField.createDefaultSkin(TextField.java:257)
    at javafx.scene.control.Control.doProcessCSS(Control.java:910)
    at javafx.scene.control.Control$1.doProcessCSS(Control.java:88)
    at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:68)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
    at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
    at javafx.scene.control.Control.doProcessCSS(Control.java:913)
    at javafx.scene.control.Control$1.doProcessCSS(Control.java:88)
    at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:68)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
    at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
    at javafx.scene.control.Control.doProcessCSS(Control.java:913)
    at javafx.scene.control.Control$1.doProcessCSS(Control.java:88)
    at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:68)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Parent.doProcessCSS(Parent.java:1401)
    at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
    at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
    at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
    at javafx.scene.Node.processCSS(Node.java:9555)
    at javafx.scene.Scene.doCSSPass(Scene.java:587)
    at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2595)
    at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:401)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:400)
    at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:430)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:592)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:572)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:565)
    at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:352)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:263)
    at java.base/java.lang.Thread.run(Thread.java:840)
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:893)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
    at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.UnsatisfiedLinkError: 'void com.sun.glass.ui.gtk.GtkWindow._updateViewSize(long)'
    at com.sun.glass.ui.gtk.GtkWindow._updateViewSize(Native Method)
    at com.sun.glass.ui.Window.setView(Window.java:377)
    at com.sun.javafx.tk.quantum.WindowStage.lambda$setScene$0(WindowStage.java:271)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithRenderLock(QuantumToolkit.java:442)
    at com.sun.javafx.tk.quantum.WindowStage.setScene(WindowStage.java:270)
    at javafx.stage.Window$12.invalidated(Window.java:1162)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
    at javafx.stage.Window.setShowing(Window.java:1239)
    at javafx.stage.Window.show(Window.java:1254)
    at javafx.stage.Stage.show(Stage.java:277)
    at javafx.stage.Stage.showAndWait(Stage.java:467)
    at de.p2tools.p2lib.dialogs.dialog.P2Dialog.showDialog(P2Dialog.java:176)
    at de.p2tools.p2lib.dialogs.dialog.P2DialogExtra.showDialog(P2DialogExtra.java:154)
    at de.p2tools.p2lib.dialogs.dialog.P2Dialog.init(P2Dialog.java:132)
    at de.p2tools.p2lib.dialogs.dialog.P2DialogExtra.init(P2DialogExtra.java:149)
    at de.p2tools.mtplayer.gui.startdialog.StartDialogController.<init>(StartDialogController.java:85)
    at de.p2tools.mtplayer.controller.ProgStartBeforeGui.workBeforeGui(ProgStartBeforeGui.java:53)
    at de.p2tools.mtplayer.MTPlayer.start(MTPlayer.java:55)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:839)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:263)
    ... 1 more

Wäre schön wenn sich eine Lösung finden lässt. :-)

Grüße olli

xaverW commented 1 month ago

ich habe noch alte Raspberry 2, werde mal damit experimentieren. Vielleicht geht da was. Muss die aber erst mal mit dem aktuellem BS versehen.

egabosh commented 1 month ago

Das ist sehr nett, vielen Dank! Falls ich noch was tun kann sag gern Bescheid. Könnte ggf. einen Test-Pi mit SSH und noVNC-Zugang bereitstellen falls das hilft. Ein alter Pi2 ist vermutlich etwas schwach dafür. Aber vielleicht genügt es ja um den Fehler zu reproduzieren

xaverW commented 3 weeks ago

Hi,

habe jetzt einiges versucht. Es wird wohl nix werden. Habe das Programm auf meinem Raspi zum Laufen gebracht, war aber einiges dafür zu tun. Es müssen Libs ausgetauscht werden und das Programm muss extra dafür übersetzt werden (bei mir 32Bit und das müsste für aarch64 extra gemacht werden). Auch habe ich die Fehlermeldungen beim Start nicht weg bekommen. Da stimmt also auch noch einiges nicht.

_WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @1668511' OpenJDK Client VM warning: You have loaded library /home/emil/.openjfx/cache/20.0.1+2/arm/libprismes2.so which might have disabled stack guard. The VM will try to fix the stack guard now.

Man kann JavaFX-Programme auf dem Raspi starten, die müssen aber dafür gebaut werden. Das Programm in der Standardausführung startet nicht auf dem Pi (habs zumindest nicht hinbekommen). Leider.

2024-10-28-114038_1680x1050_scrot

egabosh commented 3 weeks ago

Moin, vielen Dank für die Arbeit! Vielleicht macht es Sinn dafür ein AppImage oder Flatpak zu bauen wenn andere Bibliotheken benötigt werden. So hat der Austausch von Bibliotheken kein Einfluss auf das bestehende System und MTPlayer kann quasi in seinem eigenem Öko-System laufen. Hast du zufällig eine Liste von Bibliotkeken oder Schritten die nötig waren um das ans Laufen zu bekommen? Habe mich vor einigen Jahren mal mit AppImage beschäftigt und könnte dafür vielleicht eins bauen. Wüde anbieten das mal zu probieren.

xaverW commented 3 weeks ago

Infos zum Bauen des Programms gibts da:

https://github.com/xaverW/MTPlayer/tree/master/build-infos

openjfx muss installiert sein und im build.gradle müssen die libs geändert werden:

javafx { version = "20.0.1" modules = ['javafx.controls'] }

und das:

implementation "org.openjfx:javafx-fxml:21:linux" implementation "org.openjfx:javafx-controls:21:linux" implementation "org.openjfx:javafx-graphics:21:linux" implementation "org.openjfx:javafx-base:21:linux"

implementation "org.openjfx:javafx-fxml:21:win" implementation "org.openjfx:javafx-controls:21:win" implementation "org.openjfx:javafx-graphics:21:win" implementation "org.openjfx:javafx-base:21:win"

implementation "org.openjfx:javafx-fxml:21:mac" implementation "org.openjfx:javafx-controls:21:mac" implementation "org.openjfx:javafx-graphics:21:mac" implementation "org.openjfx:javafx-base:21:mac"

muss gegen das getauscht werden:

implementation "org.openjfx:javafx-fxml:20:linux-arm32-monocle" implementation "org.openjfx:javafx-controls:20:linux-arm32-monocle" implementation "org.openjfx:javafx-graphics:20:linux-arm32-monocle" implementation "org.openjfx:javafx-base:20:linux-arm32-monocle"

bei dir dann wahrscheinlich:

implementation "org.openjfx:javafx-fxml:20:linux-aarch64" implementation "org.openjfx:javafx-controls:20:linux-aarch64" implementation "org.openjfx:javafx-graphics:20:linux-aarch64" implementation "org.openjfx:javafx-base:20:linux-aarch64"

Problem ist, dass die libs die das GUI bauen, auf Systemfunktionen zugreifen und deswegen müssen die zur System-Architektur passen.

Dann drück ich mal die Daumen :)

egabosh commented 1 week ago

Moin,

hab bisher folgendes gemacht:

git clone https://github.com/xaverW/MTPlayer.git
apt install gradle openjfx
cd MTPlayer
gradle init
cp ./build-infos/build.gradle ./build.gradle
cp ./build-infos/settings.gradle ./settings.gradle
cp ./build-infos/gitignore ./.gitignore

Dann die Anpassungen in der build.gradle. Die sieht jetzt so aus:

plugins {
    id 'application'
    id "org.openjfx.javafxplugin" version "0.1.0"
    id "org.beryx.runtime" version "1.13.1"
}
javafx {
    version = "20.0.1"
    modules = ['javafx.controls']
}
repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

def programName = 'MTPlayer'
def jarName = 'MTPlayer.jar'
def theMainClass = 'de/p2tools/mtplayer/Main'
def fatJarDir = layout.buildDirectory.get().toString() + "/fatJar" + "/"

// ===========================================
// build project
// ===========================================
group 'de.p2tools'
application {
    mainClass = theMainClass
}

dependencies {
    implementation ':commons-cli-1.6.0'
    implementation ':commons-io-2.12.0'
    implementation ':commons-lang3-3.12.0'

    implementation ':jackson-core-2.15.2'
    implementation ':jackson-databind-2.15.2'
    implementation ':jackson-annotations-2.15.2'

    implementation ':xz-1.9'
    implementation 'org.jsoup:jsoup:1.17.2'

    implementation("com.squareup.okhttp3:okhttp:4.12.0")

    implementation ':p2lib'
    implementation ':controlsfx-11.1.3'

    implementation "org.openjfx:javafx-fxml:20:linux-aarch64"
    implementation "org.openjfx:javafx-controls:20:linux-aarch64"
    implementation "org.openjfx:javafx-graphics:20:linux-aarch64"
    implementation "org.openjfx:javafx-base:20:linux-aarch64"
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

jar {
    manifest {
        attributes("Manifest-Version": "1.0",
                "Main-Class": theMainClass);
    }
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.register('fatJar', Jar) {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest.from jar.manifest
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }
    destinationDirectory.set(file(fatJarDir))
    archiveFileName = jarName
    with jar
}

runtime {
    options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
    modules = ['java.naming', 'java.xml']
}

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8'
}

tasks.withType(Zip).configureEach { task ->
    task.doLast {
        //ant.checksum file: archiveFile.get().asFile
        ant.checksum(algorithm: 'SHA-512', file: archiveFile.get().asFile)
    }
}

Bekomme beim nächsten Schritt folgenden Fehler:

$ ./gradlew fatJar
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

bzw.:

./gradlew fatJar  --stacktrace
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
java.lang.IllegalArgumentException: Could not determine java version from '17.0.13'.
    at org.gradle.api.JavaVersion.toVersion(JavaVersion.java:72)
    at org.gradle.api.JavaVersion.current(JavaVersion.java:82)
    at org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:42)
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:257)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:191)
    at org.gradle.launcher.Main.doAction(Main.java:33)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:31)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:108)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

* Get more help at https://help.gradle.org
$ java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed mode, sharing)

Eine Idee?

xaverW commented 6 days ago

Hi,

ich habe ein paar libs aktualisiert, die build-infos sind wieder aktuell. Ich bekam aber auch eine andere Fehlermeldung als du: Dass die Libs nicht gefunden werden??

Meine Java-Version:

openjdk version "17.0.13" 2024-10-15 OpenJDK Runtime Environment (build 17.0.13+11) OpenJDK 64-Bit Server VM (build 17.0.13+11, mixed mode, sharing)

scheint die gleiche wie bei dir zu sein.

Machst du das auf deinem PC (unter Linux) oder auf dem Raspi?

Das ist das build.gradle (wie deins) und damit gings es:

./gradlew fatJar

plugins { id 'application' id "org.openjfx.javafxplugin" version "0.1.0" id "org.beryx.runtime" version "1.13.1" } javafx { version = "20.0.1" modules = ['javafx.controls'] } repositories { mavenCentral() flatDir { dirs 'libs' } }

def programName = 'MTPlayer' def jarName = 'MTPlayer.jar' def theMainClass = 'de/p2tools/mtplayer/Main' def fatJarDir = layout.buildDirectory.get().toString() + "/fatJar" + "/"

// =========================================== // build project // =========================================== group 'de.p2tools' application { mainClass = theMainClass }

dependencies { implementation ':commons-cli-1.9.0' implementation ':commons-io-2.17.0' implementation ':commons-lang3-3.17.0'

implementation ':jackson-core-2.17.2'
implementation ':jackson-databind-2.17.2'
implementation ':jackson-annotations-2.17.2'

implementation ':xz-1.10'
implementation 'org.jsoup:jsoup:1.18.1'

implementation("com.squareup.okhttp3:okhttp:4.12.0")

implementation ':p2lib'
implementation ':controlsfx-11.2.1'

implementation "org.openjfx:javafx-fxml:20:linux-aarch64"
implementation "org.openjfx:javafx-controls:20:linux-aarch64"
implementation "org.openjfx:javafx-graphics:20:linux-aarch64"
implementation "org.openjfx:javafx-base:20:linux-aarch64"

}

java { toolchain { languageVersion = JavaLanguageVersion.of(17) } }

jar { manifest { attributes("Manifest-Version": "1.0", "Main-Class": theMainClass); } duplicatesStrategy = DuplicatesStrategy.EXCLUDE } tasks.register('fatJar', Jar) { duplicatesStrategy = DuplicatesStrategy.EXCLUDE manifest.from jar.manifest from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } { exclude "META-INF/.SF" exclude "META-INF/.DSA" exclude "META-INF/*.RSA" } destinationDirectory.set(file(fatJarDir)) archiveFileName = jarName with jar }

runtime { options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'] modules = ['java.naming', 'java.xml'] }

tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' }

tasks.withType(Zip).configureEach { task -> task.doLast { //ant.checksum file: archiveFile.get().asFile ant.checksum(algorithm: 'SHA-512', file: archiveFile.get().asFile) } }

Am Fri, 15 Nov 2024 03:59:26 -0800 schrieb egabosh @.***>:

Moin,

hab bisher folgendes gemacht:

git clone https://github.com/xaverW/MTPlayer.git
apt install gradle openjfx
cd MTPlayer
gradle init
cp ./build-infos/build.gradle ./build.gradle
cp ./build-infos/settings.gradle ./settings.gradle
cp ./build-infos/gitignore ./.gitignore

Dann die Anpassungen in der build.gradle. Die sieht jetzt so aus:

plugins {
    id 'application'
    id "org.openjfx.javafxplugin" version "0.1.0"
    id "org.beryx.runtime" version "1.13.1"
}
javafx {
    version = "20.0.1"
    modules = ['javafx.controls']
}
repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

def programName = 'MTPlayer'
def jarName = 'MTPlayer.jar'
def theMainClass = 'de/p2tools/mtplayer/Main'
def fatJarDir = layout.buildDirectory.get().toString() + "/fatJar" +
"/"

// ===========================================
// build project
// ===========================================
group 'de.p2tools'
application {
    mainClass = theMainClass
}

dependencies {
    implementation ':commons-cli-1.6.0'
    implementation ':commons-io-2.12.0'
    implementation ':commons-lang3-3.12.0'

    implementation ':jackson-core-2.15.2'
    implementation ':jackson-databind-2.15.2'
    implementation ':jackson-annotations-2.15.2'

    implementation ':xz-1.9'
    implementation 'org.jsoup:jsoup:1.17.2'

    implementation("com.squareup.okhttp3:okhttp:4.12.0")

    implementation ':p2lib'
    implementation ':controlsfx-11.1.3'

    implementation "org.openjfx:javafx-fxml:20:linux-aarch64"
    implementation "org.openjfx:javafx-controls:20:linux-aarch64"
    implementation "org.openjfx:javafx-graphics:20:linux-aarch64"
    implementation "org.openjfx:javafx-base:20:linux-aarch64"
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

jar {
    manifest {
        attributes("Manifest-Version": "1.0",
                "Main-Class": theMainClass);
    }
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.register('fatJar', Jar) {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest.from jar.manifest
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ?
it : zipTree(it) } } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }
    destinationDirectory.set(file(fatJarDir))
    archiveFileName = jarName
    with jar
}

runtime {
    options = ['--strip-debug', '--compress', '2',
'--no-header-files', '--no-man-pages'] modules = ['java.naming',
'java.xml'] }

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8'
}

tasks.withType(Zip).configureEach { task ->
    task.doLast {
        //ant.checksum file: archiveFile.get().asFile
        ant.checksum(algorithm: 'SHA-512', file:
archiveFile.get().asFile) }
}

Bekomme beim nächsten Schritt folgenden Fehler:

$ ./gradlew fatJar
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info
or --debug option to get more log output. Run with --scan to get full
insights.

* Get more help at https://help.gradle.org

bzw.:

./gradlew fatJar  --stacktrace
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --info or --debug option to get more log output. Run with
--scan to get full insights.

* Exception is:
java.lang.IllegalArgumentException: Could not determine java version
from '17.0.13'. at
org.gradle.api.JavaVersion.toVersion(JavaVersion.java:72) at
org.gradle.api.JavaVersion.current(JavaVersion.java:82) at
org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:42)
at
org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
at
org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at
org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at
org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at
org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:257)
at
org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:191)
at org.gradle.launcher.Main.doAction(Main.java:33) at
org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
at
org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:31)
at
org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:108)
at
org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

* Get more help at https://help.gradle.org

$ java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing) ```

Eine Idee?
xaverW commented 6 days ago

Habe das jetzt mal unter Ubuntu 24.04 versucht, da bekomme ich die gleiche Fehlermeldung wie du.

Dort ist die Gradle Version: 4.4, aktuell ist 8, das könnte auch das Problem sein. Schau mal was deine Version ist?

Am Fri, 15 Nov 2024 03:59:26 -0800 schrieb egabosh @.***>:

Moin,

hab bisher folgendes gemacht:

git clone https://github.com/xaverW/MTPlayer.git
apt install gradle openjfx
cd MTPlayer
gradle init
cp ./build-infos/build.gradle ./build.gradle
cp ./build-infos/settings.gradle ./settings.gradle
cp ./build-infos/gitignore ./.gitignore

Dann die Anpassungen in der build.gradle. Die sieht jetzt so aus:

plugins {
    id 'application'
    id "org.openjfx.javafxplugin" version "0.1.0"
    id "org.beryx.runtime" version "1.13.1"
}
javafx {
    version = "20.0.1"
    modules = ['javafx.controls']
}
repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

def programName = 'MTPlayer'
def jarName = 'MTPlayer.jar'
def theMainClass = 'de/p2tools/mtplayer/Main'
def fatJarDir = layout.buildDirectory.get().toString() + "/fatJar" +
"/"

// ===========================================
// build project
// ===========================================
group 'de.p2tools'
application {
    mainClass = theMainClass
}

dependencies {
    implementation ':commons-cli-1.6.0'
    implementation ':commons-io-2.12.0'
    implementation ':commons-lang3-3.12.0'

    implementation ':jackson-core-2.15.2'
    implementation ':jackson-databind-2.15.2'
    implementation ':jackson-annotations-2.15.2'

    implementation ':xz-1.9'
    implementation 'org.jsoup:jsoup:1.17.2'

    implementation("com.squareup.okhttp3:okhttp:4.12.0")

    implementation ':p2lib'
    implementation ':controlsfx-11.1.3'

    implementation "org.openjfx:javafx-fxml:20:linux-aarch64"
    implementation "org.openjfx:javafx-controls:20:linux-aarch64"
    implementation "org.openjfx:javafx-graphics:20:linux-aarch64"
    implementation "org.openjfx:javafx-base:20:linux-aarch64"
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

jar {
    manifest {
        attributes("Manifest-Version": "1.0",
                "Main-Class": theMainClass);
    }
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.register('fatJar', Jar) {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest.from jar.manifest
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ?
it : zipTree(it) } } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }
    destinationDirectory.set(file(fatJarDir))
    archiveFileName = jarName
    with jar
}

runtime {
    options = ['--strip-debug', '--compress', '2',
'--no-header-files', '--no-man-pages'] modules = ['java.naming',
'java.xml'] }

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8'
}

tasks.withType(Zip).configureEach { task ->
    task.doLast {
        //ant.checksum file: archiveFile.get().asFile
        ant.checksum(algorithm: 'SHA-512', file:
archiveFile.get().asFile) }
}

Bekomme beim nächsten Schritt folgenden Fehler:

$ ./gradlew fatJar
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info
or --debug option to get more log output. Run with --scan to get full
insights.

* Get more help at https://help.gradle.org

bzw.:

./gradlew fatJar  --stacktrace
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --info or --debug option to get more log output. Run with
--scan to get full insights.

* Exception is:
java.lang.IllegalArgumentException: Could not determine java version
from '17.0.13'. at
org.gradle.api.JavaVersion.toVersion(JavaVersion.java:72) at
org.gradle.api.JavaVersion.current(JavaVersion.java:82) at
org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:42)
at
org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
at
org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at
org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at
org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at
org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:257)
at
org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:191)
at org.gradle.launcher.Main.doAction(Main.java:33) at
org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
at
org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:31)
at
org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:108)
at
org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

* Get more help at https://help.gradle.org

$ java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing) ```

Eine Idee?
xaverW commented 6 days ago

und jetzt nochmal:

habe gradle manuell installiert (und Java auf Java21, JDK!! aktualisiert) und dann gings, das Programm ließ sich bauen:

https://gradle.org/install/#manually

die Gradle-Version in Ubuntu 24.04!! ist hoffnungslos veraltet.

Am Fri, 15 Nov 2024 03:59:26 -0800 schrieb egabosh @.***>:

Moin,

hab bisher folgendes gemacht:

git clone https://github.com/xaverW/MTPlayer.git
apt install gradle openjfx
cd MTPlayer
gradle init
cp ./build-infos/build.gradle ./build.gradle
cp ./build-infos/settings.gradle ./settings.gradle
cp ./build-infos/gitignore ./.gitignore

Dann die Anpassungen in der build.gradle. Die sieht jetzt so aus:

plugins {
    id 'application'
    id "org.openjfx.javafxplugin" version "0.1.0"
    id "org.beryx.runtime" version "1.13.1"
}
javafx {
    version = "20.0.1"
    modules = ['javafx.controls']
}
repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

def programName = 'MTPlayer'
def jarName = 'MTPlayer.jar'
def theMainClass = 'de/p2tools/mtplayer/Main'
def fatJarDir = layout.buildDirectory.get().toString() + "/fatJar" +
"/"

// ===========================================
// build project
// ===========================================
group 'de.p2tools'
application {
    mainClass = theMainClass
}

dependencies {
    implementation ':commons-cli-1.6.0'
    implementation ':commons-io-2.12.0'
    implementation ':commons-lang3-3.12.0'

    implementation ':jackson-core-2.15.2'
    implementation ':jackson-databind-2.15.2'
    implementation ':jackson-annotations-2.15.2'

    implementation ':xz-1.9'
    implementation 'org.jsoup:jsoup:1.17.2'

    implementation("com.squareup.okhttp3:okhttp:4.12.0")

    implementation ':p2lib'
    implementation ':controlsfx-11.1.3'

    implementation "org.openjfx:javafx-fxml:20:linux-aarch64"
    implementation "org.openjfx:javafx-controls:20:linux-aarch64"
    implementation "org.openjfx:javafx-graphics:20:linux-aarch64"
    implementation "org.openjfx:javafx-base:20:linux-aarch64"
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

jar {
    manifest {
        attributes("Manifest-Version": "1.0",
                "Main-Class": theMainClass);
    }
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.register('fatJar', Jar) {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest.from jar.manifest
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ?
it : zipTree(it) } } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }
    destinationDirectory.set(file(fatJarDir))
    archiveFileName = jarName
    with jar
}

runtime {
    options = ['--strip-debug', '--compress', '2',
'--no-header-files', '--no-man-pages'] modules = ['java.naming',
'java.xml'] }

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8'
}

tasks.withType(Zip).configureEach { task ->
    task.doLast {
        //ant.checksum file: archiveFile.get().asFile
        ant.checksum(algorithm: 'SHA-512', file:
archiveFile.get().asFile) }
}

Bekomme beim nächsten Schritt folgenden Fehler:

$ ./gradlew fatJar
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info
or --debug option to get more log output. Run with --scan to get full
insights.

* Get more help at https://help.gradle.org

bzw.:

./gradlew fatJar  --stacktrace
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '17.0.13'.

* Try:
Run with --info or --debug option to get more log output. Run with
--scan to get full insights.

* Exception is:
java.lang.IllegalArgumentException: Could not determine java version
from '17.0.13'. at
org.gradle.api.JavaVersion.toVersion(JavaVersion.java:72) at
org.gradle.api.JavaVersion.current(JavaVersion.java:82) at
org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:42)
at
org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
at
org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at
org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at
org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at
org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:257)
at
org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:191)
at org.gradle.launcher.Main.doAction(Main.java:33) at
org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
at
org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:31)
at
org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:108)
at
org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

* Get more help at https://help.gradle.org

$ java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed
mode, sharing) ```

Eine Idee?
egabosh commented 4 days ago

Moin und vielen Dank ich konnte das nun mit Debian 12 (bookworm) auf nem Raspi 5 bauen und laufen lassen. Hier meine Notizen:

# openjfx
apt install openjfx
# gradle (newer then in debian repo)
wget https://services.gradle.org/distributions/gradle-8.11-bin.zip
mkdir /opt/gradle
unzip -d /opt/gradle gradle-8.11-bin.zip

git clone https://github.com/xaverW/MTPlayer.git
cd MTPlayer

export PATH=$PATH:/opt/gradle/gradle-8.11/bin
gradle init
=================
Found existing files in the project directory: '/home/mirko/mtplayer-build/MTPlayer'.
Directory will be modified and existing files may be overwritten.  Continue? (default: no) [yes, no] yes

Select type of build to generate:
  1: Application
  2: Library
  3: Gradle plugin
  4: Basic (build structure only)
Enter selection (default: Application) [1..4] 4

Project name (default: MTPlayer): 

Select build script DSL:
  1: Kotlin
  2: Groovy
Enter selection (default: Kotlin) [1..2] 2

Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] 

> Task :init
Learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.11/samples

BUILD SUCCESSFUL in 28s
1 actionable task: 1 executed

==========

cp ./build-infos/build.gradle ./build.gradle
cp ./build-infos/settings.gradle ./settings.gradle
cp ./build-infos/gitignore ./.gitignore

# vim build.gradle
=== 
javafx {
    version = "20.0.1"
===

./gradlew fatJar
./gradlew run

Wäre es nun nicht auch möglich eine fertige jar zum Download für die "Endnutzer" bereitzustellen?

xaverW commented 3 days ago

Hi,

gratuliere.

Ich werde da keine eigene Version für den Raspi anbieten. Allein dass er sich übersetzen lässt, ist es nicht getan. Es braucht immer mal wieder Anpassungen im Programm für verschiedene Sachen. Windows braucht immer mal wieder was. Aktuell bin ich dran, für GNOME was zu machen, da werden Dialoge nicht in der richtigen Größe angezeigt. Und das müsste ich dann fortlaufen auch für den Raspi machen. Außerdem müsste er immer getrennt gebaut werden.

Sei mir nicht böse, aber mein Tag hat auch nur 24h und kaufen müsste ich mir ihn dann sowieso erst mal. Mal eine einmalige Sache zu Testen/Auszuprobieren: Immer gerne aber dann eine fortlaufende zusätzliche Arbeit, das geht nicht.

Viele Grüße Xaver

Am Mon, 18 Nov 2024 05:49:10 -0800 schrieb egabosh @.***>:

Moin und vielen Dank ich konnte das nun mit Debian 12 (bookworm) auf nem Raspi 5 bauen und laufen lassen. Hier meine Notizen:

# openjfx
apt install openjfx
# gradle (newer then in debian repo)
wget https://services.gradle.org/distributions/gradle-8.11-bin.zip
mkdir /opt/gradle
unzip -d /opt/gradle gradle-8.11-bin.zip

git clone https://github.com/xaverW/MTPlayer.git
cd MTPlayer

export PATH=$PATH:/opt/gradle/gradle-8.11/bin
gradle init
=================
Found existing files in the project directory:
'/home/mirko/mtplayer-build/MTPlayer'. Directory will be modified and
existing files may be overwritten.  Continue? (default: no) [yes, no]
yes

Select type of build to generate:
  1: Application
  2: Library
  3: Gradle plugin
  4: Basic (build structure only)
Enter selection (default: Application) [1..4] 4

Project name (default: MTPlayer): 

Select build script DSL:
  1: Kotlin
  2: Groovy
Enter selection (default: Kotlin) [1..2] 2

Generate build using new APIs and behavior (some features may change
in the next minor release)? (default: no) [yes, no] 

> Task :init  
Learn more about Gradle by exploring our Samples
at https://docs.gradle.org/8.11/samples

BUILD SUCCESSFUL in 28s
1 actionable task: 1 executed

==========

cp ./build-infos/build.gradle ./build.gradle
cp ./build-infos/settings.gradle ./settings.gradle
cp ./build-infos/gitignore ./.gitignore

# vim build.gradle
=== 
javafx {
    version = "20.0.1"
===

./gradlew fatJar
./gradlew run

Wäre es nun nicht auch möglich eine fertige jar zum Download für die "Endnutzer" bereitzustellen?

egabosh commented 2 days ago

Danke! :-)

Soweit wir das bisher beurteilen können läuft der MTPlayer problemlos und tut was er soll nach diesem Build.

Schade, aber die Gründe sind natürlich verständlich.

Vielleicht wäre es möglich eine Art automatisiertes Building aufzusetzen, damit die Arbeit sich möglichst gering hält? Wir könnten anbieten dir einen Pi dafür zu schicken, so dass du den nicht selbst kaufen müsstest und ich könnte ggf. auch manuelle Arbeiten falls nötig übernehmen oder Dinge skripten. Falls es dennoch zu viel Aufwand bedeutet ist eine Ablehnung natürlich ebenfalls verständlich.

xaverW commented 23 hours ago

Ich werde mirs mal durch den Kopf gehen lassen. Was auf jeden Fall geht, ist eine eigene Seite auf der Website mit einer Anleitung zum Bauen und passenden Scripten.

Habe meinen Update-Mechanismuss mal mit einen Raspi-File getestet, der würde das schlucken und zum Download anzeigen. Das bräuchte schon mal keine Änderungen :)

Gib mir aber etwas Zeit.