Java menus not working on Fedora 36 (KDE spin)
Encrypted Blurays without Java menus working fine. I have tried all available version of Java from Fedora 36 repos, those are the available versions:
java-1.8.0-openjdk.x86_64 1:1.8.0.332.b09-1.fc36 @updates
java-11-openjdk.x86_64 1:11.0.15.0.10-1.fc36 @updates
java-17-openjdk.x86_64 1:17.0.3.0.7-1.fc36 @updates
java-latest-openjdk.x86_64 1:18.0.1.0.10-1.rolling.fc36 @updates
According to the changelog at least version 8 and 11 should work, right? https://code.videolan.org/videolan/libbluray/-/blob/master/ChangeLog
My installed packages regarding bluray (no makemkv repo)
libbluray.x86_64 1.3.1-1.fc36 @fedora
libbluray-bdj.x86_64 1.3.1-1.fc36 @fedora
libbluray-utils.x86_64 1.3.1-1.fc36 @fedora
libbdplus.x86_64 0.2.0-1.fc36 @rpmfusion-free
libaacs.x86_64 0.11.1-1.fc36 @rpmfusion-free
libaacs-utils.x86_64 0.11.1-1.fc36 @rpmfusion-free
I`m changing the Java version with that command:
$ sudo alternatives --config java
There are 4 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.3.0.7-1.fc36.x86_64/bin/java)
2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.fc36.x86_64/jre/bin/java)
3 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.15.0.10-1.fc36.x86_64/bin/java)
+ 4 java-latest-openjdk.x86_64 (/usr/lib/jvm/java-18-openjdk-18.0.1.0.10-1.rolling.fc36.x86_64/bin/java)
Enter to keep the current selection[+], or type selection number: 1
And setting JAVA_HOME as following each time after changing the version:
$ export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk-17.0.3.0.7-1.fc36.x86_64
But even if I don't change the version, VLC isn't even able to find any Java at all before setting the Java path.
Here the console outputs when running VLC with different versions.
Java 8
$ vlc
VLC media player 3.0.17.2 Vetinari (revision )
[000055fd74858b70] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[000055fd748f1bc0] main playlist: playlist is empty
disc.c:437: error opening file /BDMV/META/DL/./SQEX_20081_th_S.jpg
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd_hrgb -Dswing.aatext=true
Error occurred during initialization of VM
java.lang.AbstractMethodError: java.io.FileSystem.isInvalid(Ljava/io/File;)Z
at java.io.File.isInvalid(File.java:189)
at java.io.File.exists(File.java:827)
at java.lang.ClassLoader$3.run(ClassLoader.java:1873)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1870)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1838)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at java.lang.System.initializeSystemClass(System.java:1200)
QObject::~QObject: Timers cannot be stopped from another thread
Java 11
$ vlc
VLC media player 3.0.17.2 Vetinari (revision )
[0000564d7732fb70] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0000564d773c8bc0] main playlist: playlist is empty
disc.c:437: error opening file /BDMV/META/DL/./SQEX_20081_th_S.jpg
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd_hrgb -Dswing.aatext=true
Error occurred during initialization of boot layer
java.lang.LinkageError: loader 'bootstrap' attempted duplicate class definition for java.lang.invoke.SimpleMethodHandle. (java.lang.invoke.SimpleMethodHandle is in module java.base of loader 'bootstrap')
Java 17
$ vlc
VLC media player 3.0.17.2 Vetinari (revision )
[000056505fc12b70] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[000056505fcabbc0] main playlist: playlist is empty
disc.c:437: error opening file /BDMV/META/DL/./SQEX_20081_th_S.jpg
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd_hrgb -Dswing.aatext=true
Error occurred during initialization of boot layer
java.lang.AbstractMethodError: Receiver class java.io.BDFileSystemImpl does not define or inherit an implementation of the resolved method 'abstract boolean isInvalid(java.io.File)' of abstract class java.io.FileSystem.
Java 18
$ vlc
VLC media player 3.0.17.2 Vetinari (revision )
[0000557f527d9b70] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0000557f52872bc0] main playlist: playlist is empty
disc.c:437: error opening file /BDMV/META/DL/./SQEX_20081_th_S.jpg
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd_hrgb -Dswing.aatext=true
Error occurred during initialization of boot layer
java.lang.AbstractMethodError: Receiver class java.io.BDFileSystemImpl does not define or inherit an implementation of the resolved method 'abstract boolean isInvalid(java.io.File)' of abstract class java.io.FileSystem.
In all cases VLC crashes immediately after loading the Bluray.