mediathekview / MediathekView

Das Programm MediathekView durchsucht die Online-Mediatheken verschiedener Sender
https://mediathekview.de
GNU General Public License v3.0
844 stars 95 forks source link

MV auf RaspberryPi bauen und starten #733

Closed dgottstein closed 2 months ago

dgottstein commented 3 months ago

Hallo,

ich habe hier schon vor längerer Zeit einen Forumseintrag geschrieben, leider bis jetzt keine Antwort, deshalb versuche ich es hier nochmal.

Ich möchte eine aktuelle Version für armhf auf dem RaspberryPi bauen. MV 14.0.0 wird erfolgreich gebaut und ins Maven Repo installiert, allerdings weiß ich nicht, wie ich MV nun starte.

Folgende Schritte habe ich durchgeführt:

cd ~/Downloads
git clone https://github.com/mediathekview/MediathekView.git
git checkout 14.0.0
cd MediathekView
source ~/.sdkman/bin/sdkman-init.sh
sdk use java 20.fx-librca
./mvnw clean install

Ausgabe (gekürzt):

[INFO] Installing /home/pi/Downloads/MediathekView/target/MediathekView.jar to /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0.jar
[INFO] Installing /home/pi/Downloads/MediathekView/pom.xml to /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0.pom
[INFO] Installing /home/pi/Downloads/MediathekView/target/MediathekView-sources.jar to /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:58 min
[INFO] Finished at: 2024-01-07T11:58:55+01:00
[INFO] ------------------------------------------------------------------------

Versuch zu starten:

java -jar /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0.jar

kein Hauptmanifestattribut, in /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0.jar

Wie kann ich die gebaute .jar nun starten? Welchen Schritt habe ich vergessen?

Weitere Frage: Welche Schritte wurden bei den experimentellen (leider relativ alten) Builds für armhf durchgeführt, um ein Debian Package (.deb) zu erzeugen?

Grüße

derreisende77 commented 3 months ago

Die notwendige jar findet sich im Ordner target.

cd target
java -jar MediathekView.jar

Es müssen natürlich noch alle fehlenden Startparameter hier ergänzt werden.

derreisende77 commented 2 months ago

@dgottstein Hat es funktioniert?

dgottstein commented 2 months ago

@derreisende77 : Tut mir leid, hatte vorher keine Zeit es zu testen und dann tatsächlich vergessen. Werde es aber gleich testen, danke für den Hinweis!

dgottstein commented 2 months ago

Leider funktioniert es mit den Startparametern auch nicht:

cd target
java  -Xmx2g --enable-preview -jar MediathekView.jar
kein Hauptmanifestattribut, in MediathekView.jar

Mit welchen Parametern muss ich denn starten?

Laut Fehlermeldung müsste es doch aber eigentlich an einem fehlenden Attribut Main-Class: in META-INF/MANIFEST.MF liegen, oder irre ich mich da?

Wie wurde denn bisher die Raspberry Pi Version gebaut?

derreisende77 commented 2 months ago

cd MediathekView mvn clean install cd target java -Xmx2G -jar MediathekView.jar

dann sollte es starten.

dgottstein commented 2 months ago

Vollständige Ausgabe:

pi@mediaserver:~/Downloads/MediathekView $ source ~/.sdkman/bin/sdkman-init.sh
pi@mediaserver:~/Downloads/MediathekView $ sdk use java 20.fx-librca

Using java version 20.fx-librca in this shell.
pi@mediaserver:~/Downloads/MediathekView $ ./mvnw clean install
[INFO] Scanning for projects...
[INFO] 
[INFO] -------------------< de.mediathekview:MediathekView >-------------------
[INFO] Building de.mediathekview:MediathekView 14.0.0
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.1.0:clean (default-clean) @ MediathekView ---
[INFO] Deleting /home/pi/Downloads/MediathekView/target
[INFO] 
[INFO] --- enforcer:3.0.0:enforce (enforce-versions) @ MediathekView ---
[INFO] 
[INFO] --- resources:3.2.0:copy-resources (copy-resources) @ MediathekView ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 4 resources
[INFO] 
[INFO] --- resources:3.2.0:copy-resources (filter-install4j) @ MediathekView ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 7 resources
[INFO] 
[INFO] --- resources:3.2.0:resources (default-resources) @ MediathekView ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 120 resources
[INFO] 
[INFO] --- kotlin:1.8.21:compile (compile) @ MediathekView ---
[WARNING] Duplicate source root: /home/pi/Downloads/MediathekView/src/main/java
[WARNING] /home/pi/Downloads/MediathekView/src/main/java/mediathek/mac/MediathekGuiMac.kt: (42, 34) 'exec(String!): Process!' is deprecated. Deprecated in Java
[WARNING] /home/pi/Downloads/MediathekView/src/main/java/mediathek/tool/Ipify.kt: (23, 25) 'constructor URL(String!)' is deprecated. Deprecated in Java
[INFO] 
[INFO] --- compiler:3.8.1:compile (java-compile) @ MediathekView ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 305 source files to /home/pi/Downloads/MediathekView/target/classes
[INFO] 
[INFO] --- resources:3.2.0:testResources (default-testResources) @ MediathekView ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 2 resources
[INFO] 
[INFO] --- kotlin:1.8.21:test-compile (kotlin-test-compile) @ MediathekView ---
[WARNING] /home/pi/Downloads/MediathekView/src/test/kotlin/feed/RSSFeedParserTest.kt: (11, 13) 'constructor URL(String!)' is deprecated. Deprecated in Java
[INFO] 
[INFO] --- compiler:3.8.1:testCompile (java-test-compile) @ MediathekView ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 9 source files to /home/pi/Downloads/MediathekView/target/test-classes
[INFO] 
[INFO] --- surefire:3.0.0-M5:test (default-test) @ MediathekView ---
[WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead.
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running mSearch.daten.DatenFilmTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.243 s - in mSearch.daten.DatenFilmTest
[INFO] Running feed.RSSFeedParserTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.937 s - in feed.RSSFeedParserTest
[INFO] Running mediathek.config.MVConfigTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 s - in mediathek.config.MVConfigTest
[INFO] Running mediathek.config.StandardLocationsTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.182 s - in mediathek.config.StandardLocationsTest
[INFO] Running mediathek.gui.tabs.tab_film.SearchFieldDataTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.134 s - in mediathek.gui.tabs.tab_film.SearchFieldDataTest
[INFO] Running mediathek.tool.FileUtilsTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.096 s - in mediathek.tool.FileUtilsTest
[INFO] Running mediathek.tool.SingleInstanceTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 s - in mediathek.tool.SingleInstanceTest
[INFO] Running mediathek.tool.FilenameUtilsTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.038 s - in mediathek.tool.FilenameUtilsTest
[INFO] Running mediathek.tool.MVInfoFileTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.266 s - in mediathek.tool.MVInfoFileTest
[INFO] Running mediathek.tool.TrailerTeaserCheckerTest
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.037 s - in mediathek.tool.TrailerTeaserCheckerTest
[INFO] Running mediathek.tool.SeenHistoryMigratorTest
15:34:11.183 [main] INFO  mediathek.controller.history.SeenHistoryMigrator - Start old history migration.
15:34:11.193 [main] TRACE mediathek.controller.history.SeenHistoryMigrator - Reading old entries
15:34:11.421 [main] TRACE mediathek.controller.history.SeenHistoryMigrator - historyEntries size: 8
15:34:11.889 [main] INFO  mediathek.controller.history.SeenHistoryMigrator - Finished old history migration.
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.781 s - in mediathek.tool.SeenHistoryMigratorTest
[INFO] Running mediathek.tool.VersionTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 s - in mediathek.tool.VersionTest
[INFO] Running mediathek.tool.FilterConfigTest
15:34:12.341 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.abos mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.367 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.audio_versions mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.379 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.sign_language mit dem Wert false gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.388 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.trailers mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.400 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.film_length.max mit dem Wert 85.0 gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.408 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.film_length.min mit dem Wert 23.0 gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.417 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.hd_only mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.427 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.livestreams_only mit dem Wert false gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.436 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.new_only mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.445 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.subtitles_only mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.455 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.unseen_only mit dem Wert false gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.474 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.zeitraum mit dem Wert 5 gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID f1fa1e1f-2f2a-40d1-b78f-f53b285e3ca0.
15:34:12.482 [main] INFO  mediathek.tool.FilterConfiguration - Filter migration abgeschlossen.
15:34:12.577 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.abos mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.584 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.audio_versions mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.591 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.sign_language mit dem Wert false gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.598 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.dont_show.trailers mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.607 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.film_length.max mit dem Wert 85.0 gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.615 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.film_length.min mit dem Wert 23.0 gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.623 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.hd_only mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.630 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.livestreams_only mit dem Wert false gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.641 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.new_only mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.651 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.subtitles_only mit dem Wert true gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.657 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.show.unseen_only mit dem Wert false gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.666 [main] INFO  mediathek.tool.FilterConfiguration - Alte Filter Konfiguration filter.zeitraum mit dem Wert 5 gefunden. Migriere es zu einer neuen Filter Konfiguration mit der Filter ID bbd3b655-45e2-4df4-9647-062e452a5be7.
15:34:12.674 [main] INFO  mediathek.tool.FilterConfiguration - Filter migration abgeschlossen.
[INFO] Tests run: 34, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.524 s - in mediathek.tool.FilterConfigTest
[INFO] Running mediathek.tool.TimedTextMarkupLanguageParserTest
15:34:13.670 [main] ERROR mediathek.tool.TimedTextMarkupLanguageParser - File: src/test/resources/ttml/ttml_fail_test_file.ttml
java.lang.Exception: Unknown TTML file version
    at mediathek.tool.TimedTextMarkupLanguageParser.parse(TimedTextMarkupLanguageParser.java:206) ~[classes/:?]
    at mediathek.tool.TimedTextMarkupLanguageParserTest.unsupported_ttml_file_format(TimedTextMarkupLanguageParserTest.java:76) ~[test-classes/:?]
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:578) ~[?:?]
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727) ~[junit-platform-commons-1.9.0.jar:1.9.0]
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68) ~[junit-jupiter-engine-5.9.0.jar:5.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147) ~[junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127) ~[junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90) ~[junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55) ~[junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102) [junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54) [junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) [junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) [junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) [junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) [junit-platform-launcher-1.9.0.jar:1.9.0]
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:188) [surefire-junit-platform-3.0.0-M5.jar:3.0.0-M5]
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:154) [surefire-junit-platform-3.0.0-M5.jar:3.0.0-M5]
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:128) [surefire-junit-platform-3.0.0-M5.jar:3.0.0-M5]
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:428) [surefire-booter-3.0.0-M5.jar:3.0.0-M5]
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) [surefire-booter-3.0.0-M5.jar:3.0.0-M5]
    at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:562) [surefire-booter-3.0.0-M5.jar:3.0.0-M5]
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:548) [surefire-booter-3.0.0-M5.jar:3.0.0-M5]
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.19 s - in mediathek.tool.TimedTextMarkupLanguageParserTest
[INFO] Running mediathek.tool.GuiFunktionenTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.032 s - in mediathek.tool.GuiFunktionenTest
[INFO] Running mediathek.daten.blacklist.BlacklistRuleTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.439 s - in mediathek.daten.blacklist.BlacklistRuleTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 83, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- jar:3.2.0:jar (default-jar) @ MediathekView ---
[INFO] Building jar: /home/pi/Downloads/MediathekView/target/MediathekView.jar
[INFO] 
[INFO] --- source:3.2.1:jar-no-fork (attach-sources) @ MediathekView ---
[INFO] Building jar: /home/pi/Downloads/MediathekView/target/MediathekView-sources.jar
[INFO] 
[INFO] --- install:3.0.0-M1:install (default-install) @ MediathekView ---
[INFO] Installing /home/pi/Downloads/MediathekView/target/MediathekView.jar to /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0.jar
[INFO] Installing /home/pi/Downloads/MediathekView/pom.xml to /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0.pom
[INFO] Installing /home/pi/Downloads/MediathekView/target/MediathekView-sources.jar to /home/pi/.m2/repository/de/mediathekview/MediathekView/14.0.0/MediathekView-14.0.0-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:00 min
[INFO] Finished at: 2024-04-23T15:34:19+02:00
[INFO] ------------------------------------------------------------------------
pi@mediaserver:~/Downloads/MediathekView $ cd target
pi@mediaserver:~/Downloads/MediathekView/target $ java -Xmx2G -jar MediathekView.jar
kein Hauptmanifestattribut, in MediathekView.jar

Ich habe allerdings die mitgelieferten Maven-Wrapper verwendet (./mvnw), kann es daran liegen?

derreisende77 commented 2 months ago

könnte, mvnw ist eigentlich der windows wrapper …ich schau mal ob ich bis zum WE mir einen pi4 organisieren kann. Dann kann ich testen was das Problem ist. ansonsten habe ich nur „richtige“ ARM Linuxe hier und da geht es problemlos

dgottstein commented 2 months ago

Das wäre super, danke!

Ansonsten: macht es Sinn, dass ich Maven in der passenden Version einrichte und das nochmal teste?

derreisende77 commented 2 months ago

so, ich war gerade auf einem RPi 4 mit dem 64 bit Raspbian gerade drauf, welcher jungfräulich war. Ich habe das git repo gecloned und folgendes gemacht um MediathekView 14.0.1 zu bauen:

cd MediathekView
git switch develop
git pull

sdk install java 22.fx-liberica
sdk install maven 3.9.6

mvn clean install
cd target

java -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact -XX:+UseStringDeduplication --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED -XX:MaxRAMPercentage=75.0 --add-exports javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED -jar MediathekView.jar

Damit erhalte ich folgendes:

Bildschirmfoto 2024-04-23 um 16 51 26

Es funktioniert, ansonsten liegt es an deiner config. Wichtig ist mein java call oben, da müssen mehr Parameter hinzugefügt werden ansonsten bleibt das Programm hängen.

dgottstein commented 2 months ago

Hi, ich kann mit der 14.0.1 und der damit verbundenen Java 22 leider nicht bauen, er findet etliche JavaFX Controls nicht. Ich war bisher auf einem 32-bit Raspbian unterwegs, habe zum Test nochmal auf 64-bit umgestellt (geht ja über die Config.txt ganz einfach), gab aber keine Verbesserung.

Da du aber auf einem "leeren" Pi4 mit 64-bit Raspbian offensichtlich ohne Probleme bauen kannst, muss bei mir irgendwas vermurkst sein. Ich werde mal bei Gelegenheit eine zweite SD-Karte einsetzen und ein frisches System aufsetzen und nochmal testen.

Viele Grüße und vielen Dank für die Unterstützung!

derreisende77 commented 2 months ago

Der war komplett frisch mit raspbian imager aufgesetzt, danach nur sdkman.io installiert und die Anleitung hier durchexerziert. 32bit systeme werden nicht mehr unterstützt, das kann deine Probleme erklären v.a. wenn es ein mischsystem wurde.

dgottstein commented 1 month ago

Hi, ich habe nun endlich einen neuen RPI4 mit Bookworm (64bit) aufgesetzt und damit ging es auf anhieb. Vielen Dank nochmal für die Unterstützung!