UMS on Ubuntu 18.04 and derivatives

For help and support with Linux-specific issues
Forum rules
Please make sure you follow the Problem Reporting Guidelines before posting if you want a reply
Post Reply
Posts: 1
Joined: Mon Jul 02, 2018 5:04 pm

UMS on Ubuntu 18.04 and derivatives

Post by Hellbringer » Mon Jul 02, 2018 5:29 pm

I just wanted to post this so that if anyone else ran into the same problems I had they could find out what the problem is. I didnt know if i should post here or on git, but figured it wasnt technically a bug and visibility is probably? better here.

I recently switched from minidlna to UMS for transcoding to my xbox360. I was running 17.10 artful which installs openjdk8 by default. No problems.

I upgraded to 18.04 Bionic and UMS stopped working. It wouldnt even launch. I reinstalled my jdk. Still nothing. Redownloaded. Nothing. Deleted .config, still nothing.

I assumed the upgrade broke it but couldn't figure out why. I launched the program from a terminal because the logs didn't even show anything. Terminal output was:

Code: Select all

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsLookAndFeel                                                                                      
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)                                                                                                                             
        at java.base/java.lang.ClassLoader.defineClass(                                                                                                                      
        at java.base/                                                                                                       
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(
        at java.base/java.lang.ClassLoader.loadClass(
        at net.pms.PMS.main(
Caused by: java.lang.ClassNotFoundException:
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(
        at java.base/java.lang.ClassLoader.loadClass(
        ... 10 more
I googled this error and got some Bionic reviews talking about how *buntu was changing jdk to 10, then realized it had installed jdk 11 during the upgrade. Program worked fine after I removed that, but apparently this is the new default install option instead of 10.

Here's some articles talking about it. I don't know if something will break without jdk 11... I am on kubuntu/plasma. I guess I'll see. ... nJDK-Plans

Hopefully this post saves someone some effort. I figure if this is the new default, youre going to get more people running into this problem and I didn't see anyone else posting about it. I would hate for someone to give up on the program when the fix is easy. Also, thanks for the work, nice program. I appreciate a GUI program WITH a GUI config option.

Posts: 1229
Joined: Tue Jun 09, 2015 5:57 pm

Re: UMS on Ubuntu 18.04 and derivatives

Post by Nadahar » Fri Aug 10, 2018 2:00 pm

I guess we're going to see more of these now that Ubuntu has decided to go for the "new" Java versions. It's a sad choice in my opinion, because of the special situation that exists for Java. I'll paste a short explanation I made in another thread about the same issue today:
Nadahar wrote:
Fri Aug 10, 2018 8:44 am
UMS doesn't work with Java 9/10. This is a long story, but to try to make it short Oracle is making Java payware from Java 11. In preparation for this, they have made two "pretend" versions of Java (which only is valid 6 months each) that mostly removes stuff. They probably plan to offer some expensive "replacement" for those things later, I really don't know what they're up to.

Either way, Java 8 is the thing to use for now. It will be maintained for a good while still, and I guess we're all hoping for someone to come in and solve the mess Oracle is creating, or to watch Java slowly die. So, uninstall Java 10 and install the latest Java 8.
There's almost nothing useful in Java 9 & 10, but there are huge drawbacks. My guess is that a lot of the "Java world" will stay with Java 8 for the time being. It is possible to make workarounds for some of the problems Oracle has caused, but they release a new version every 6 months where they remove more stuff, so it's clear that we'd be bugged down just making workarounds for the stuff they sabotage if we were to go down that route.

A lot of people have the simplistic view that "newer is better". I disagree in many cases where bad decisions have been made in newer versions and especially when it comes to Java after Java 8.

Post Reply