MediathekView auf FreeBSD
-
Vor knapp 5 Jahren habe ich MediathekView 13.0.4 auf FreeBSD installiert, was damals problemlos gelaufen ist und auch weiter läuft. Seitdem hat man dafür ein FreeBSD-Port gemacht, allerdings wieder aufgegeben: „Ich hatte ihr so lange betreut, bis sie eine Version herausgebracht hatten, die (trotz Java) unter FreeBSD nicht zum Laufen gebracht werden konnte. Warum das so war, weiß ich allerdings nicht mehr.“
Ich hab’s jetzt nochmals mit 13.8.1 versucht. Das Programm installiert, stürzt aber sofort ab mit der Meldung „Cannot read the array length because “this.screens” is null“
Ich hatte es ursprünglich mit dem FreeBSD-Port openjdk17-17.0.2+8.1 versucht, dann aber das mitgelieferte Linux-Java versucht, was recht ähnlich aussah. Das Problem ist geblieben.
Hier ein hoffentlich ausreichender Auszug aus dem Stack-Trace:
. Configuring for non-portable mode
Exception in thread “main” java.lang.ExceptionInInitializerError at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:106)
at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:224)
…
Caused by: java.lang.NullPointerException: Cannot read the array length because “this.screens” is null
at Java.desktop/sun.awt.X11GraphicsEnvironment.initDevices(X11GraphicsEnvironment.java:235)
… 12 moreHat jemand eine Idee, woran das liegen kann? FreeBSD emuliert CentOS 7.
Greg
-
Das Java stürzt ab weil es anscheinend keine Monitore finden kann. FreeBSD hat bei uns keiner im Einsatz daher kann ich da keine Hilfe sein abseits der Aussage das es erst einmal am Java auf FreeBSD liegt.
-
@derreisende77 Wie gesagt passiert das genauso mit der Linuxvariante. Und natürlich läuft Java auf FreeBSD. Das Problem ist auf neuere Versionen von MediathekView beschränkt. Sicher tritt es (nur?) bei FreeBSD auf, was aber kein FreeBSD-Problem ist.
-
Ein ehemaliger Benutzerantwortete auf Groogle am zuletzt editiert von Ein ehemaliger Benutzer
@groogle sagte in MediathekView auf FreeBSD:
Sicher tritt es (nur?) bei FreeBSD auf, was aber kein FreeBSD-Problem ist.
Vielleicht trifft es (nur)? bei FreeBSD kleiner als Version 13 zu? Dazu schweigst du dich leider aus.
Offenbar läuft MV auf anderen Linux-Versionen ohne diese Probleme. Jedenfalls habe ich noch keine entsprechene Beitrage von anderen Linux-Usern zur MV-Version 13.8.1 gelesen, wenn ausreichend Speicher vorhanden ist. Die Speicherverwaltung seit MV 13.8.0 wurde geändert, vielleicht überprüfst du deine Einstellungen einmal -
@groogle sagte in MediathekView auf FreeBSD:
@derreisende77 Wie gesagt passiert das genauso mit der Linuxvariante. Und natürlich läuft Java auf FreeBSD.
Ja, Java läuft auf FreeBSD. Aber es hat aber definitiv bei dir ein Problem:
java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:106) at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:224) … Caused by: java.lang.NullPointerException: Cannot read the array length because “this.screens” is null at Java.desktop/sun.awt.X11GraphicsEnvironment.initDevices(X11GraphicsEnvironment.java:235)
Die Exception kommt von deinem Java und nicht von MV und sagt nichts anderes aus als dass es Dein Grafiksystem nicht initialisieren kann und keine Screens (Monitore) findet. Das hat nix mit MV zu tun erst mal.
Das Problem ist auf neuere Versionen von MediathekView beschränkt. Sicher tritt es (nur?) bei FreeBSD auf, was aber kein FreeBSD-Problem ist.
Warum ist ein Problem was (nur) unter FreeBSD auftritt kein FreeBSD-Problem?
Ggf. könnte es funktionieren wenn Du ein FreeBSD-Java mit dem passenden JavaFX installierst. Aber wie gesagt keiner von uns nutzt FreeBSD und es wird von uns auch nicht offiziell unterstützt. Von der Seite her bist Du hier leider komplett auf Eigeninitiative angewiesen bzw. nutzt die letzte bei dir lauffähige Version. Ältere Versionen von MV kann man ja bei uns laden. -
@we49 Im Prinzip habe ich alle relevanten Daten gegeben. In diesem Fall habe ich die FreeBSD-Version für unwesentlich gehalten. Bei meiner Testmaschine handelt es sich um:
FreeBSD tiwi.lemis.com 13.1-STABLE FreeBSD 13.1-STABLE #2 stable/13-n250531-6182c7881829-dirty: Fri Apr 22 12:53:34 AEST 2022 grog@tiwi.lemis.com:/usr/obj/eureka/home/src/FreeBSD/git/stable-13/amd64.amd64/sys/GENERIC amd64
Wie vom Datum zu erkennen handelt es sich hierbei um den letzten Stand.
Die ältere Version 13.0.4 läuft auf:
FreeBSD eureka.lemis.com 10.2-STABLE FreeBSD 10.2-STABLE #2 r290972: Wed Nov 25 11:38:38 AEDT 2015 grog@stable.lemis.com:/usr/obj/eureka/home/src/FreeBSD/svn/10/sys/GENERIC amd64
FreeBSD teevee.lemis.com 12.1-STABLE FreeBSD 12.1-STABLE r359522 GENERIC amd64Mir ist verständlich, dass MV meist auf Linux läuft. Man kann aber nicht davon ausgehen, dass das Problem auch dort im Ausnahmefall auftritt und der Betroffene einfach aufgegeben hat.
Was sollte ich bei der Speicherverwaltung untersuchen? Die Maschine hat 6 GB Hauptspeicher. Wie ich sehe sollte ab 13.8 weniger Speicher nötig sein.
Inzwischen bin ich weitergekommen: das ist kein FreeBSD-Problem, wie ich schon vermutet habe. Der Verständlichkeit halber gebe ich die Details in einem getrennten Beitrag.
-
@derreisende77 Das ist nur eine Annahme, dass das Problem mit FreeBSD zu tun hat. Hat es jetzt eindeutig nicht.
Das Problem liegt daran, dass neuere Versionen von MV kein X-Networking verstehen. Ob das an Java oder MV liegt, weiß ich nicht. Was ich vorher nicht gesagt habe (mea culpa): Ich teste mit meiner Testmaschine aber mit Display auf einer anderen Maschine. 13.0.4 hat damit keine Probleme, 13.8.1 aber schon. Ich habe jetzt X auf der Testmaschinen (tiwi) gestartet und MV auf dem Server zum Laufen gebracht.
Ganz gelöst ist die Frage aber nicht:
- Es läuft nur mit dem mitgelieferten Java. Mit der FreeBSD-Version (openjdk17-17.0.2+8.1) weigert es schlicht:
$ DISPLAY=tiwi:0 java -jar MediathekView.jar
. Configuring for non-portable mode
Apr 24, 2022 5:06:33 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from ‘unnamed module @6d195aa5’
. Command line parse error:
java.lang.UnsupportedOperationException: FreeBSD is not supportedErkennt jemand das Problem? Gibt es in MV so eine Prüfung? Logischerweise kann’s nicht von Java kommen. Klar kann ich das ganze Linux-Java mitinstallieren, kommt mir aber unsauber vor.
- Warum versteht es kein X-Networking? Ist das Absicht, versehentlich oder eine Einschränkung neuerer Java-Releases?
-
@groogle sagte in MediathekView auf FreeBSD:
java.lang.UnsupportedOperationException: FreeBSD is not supported
Wie ich oben geschrieben habe wirst Du wohl MV selbst unter FreeBSD bauen müssen inklusive JavaFX. JavaFX beinhaltet native .so Bibliotheken entweder für windows/macOS oder linux, nicht jedoch FreeBSD. Von daher wird die Ausgabe “FreeBSD is not supported” wohl aus der Ecke kommen.
Weshalb X mit Java nicht funktioniert -> keine Ahnung. Ich nutze die von Java angebotenen Grafikschnittstellen und greife nicht auf X11 etc zu. -
@groogle sagte in MediathekView auf FreeBSD:
@derreisende77 Das ist nur eine Annahme, dass das Problem mit FreeBSD zu tun hat. Hat es jetzt eindeutig nicht.
Ist das nicht in gewisser Weise ein Widerspruch zu …:
. Command line parse error:
java.lang.UnsupportedOperationException: FreeBSD is not supportedOder was fehlt mir um die beiden Statements zusammen zu bringen?