Q:

Is this java classpath set correctly?

I really have no idea what I'm missing. I've spent many hours reading up on how to set classpaths but this still does not work, at this point I am convinced it must be something trivial which escapes me.
I'm trying to use the swing radiance libraries to change the look and feel of a swing application. I followed the build documentation to make the jar files and when those didn't work I downloaded and tried the prebuilt binaries. I opened an issue with developer and confirmed I was following the getting started instructions correctly. The code for demonstration is as follows:
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;

public class Walkthrough extends JFrame {
  public Walkthrough() {
    super("Sample app");
    this.setLayout(new FlowLayout());
    this.add(new JButton("button"));
    this.add(new JCheckBox("check"));
    this.add(new JLabel("label"));

    this.setIconImage(new BufferedImage(1, 1, BufferedImage.TYPE_4BYTE_ABGR));
    this.setSize(new Dimension(250, 80));
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);

    SwingUtilities.invokeLater(() -> {
        Walkthrough w = new Walkthrough();
        w.setVisible(true);
    });
  }
}

The code is first compiled with javac Walkthrough.java and executed with java Walkthrough. This works fine. Next the radiance jars are used to change the look and feel, this is done by setting the swing.defaultlaf property to use a skin from radiance. This is where it does not work.
I copied all the required jars into a tmp directory, where the Walkthrough example exists immediately outside of tmp. I then try to run the application as follows:
java -Dswing.defaultlaf=org.pushingpixels.substance.api.skin.SubstanceBusinessLookAndFeel -cp .:tmp/radiance-substance-2.5-SNAPSHOT.jar:tmp/radiance-trident-2.5-SNAPSHOT.jar:tmp/radiance-neon-2.5-SNAPSHOT.jar Walkthrough 

Which leads to the following exception:
Exception in thread "AWT-EventQueue-0" java.lang.Error: Cannot load org.pushingpixels.substance.api.skin.SubstanceBusinessLookAndFeel
    at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1406)
    at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1517)
    at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1483)
    at java.desktop/javax.swing.UIManager.getUI(UIManager.java:1056)
    at java.desktop/javax.swing.JPanel.updateUI(JPanel.java:126)
    at java.desktop/javax.swing.JPanel.<init>(JPanel.java:86)
    at java.desktop/javax.swing.JPanel.<init>(JPanel.java:109)
    at java.desktop/javax.swing.JPanel.<init>(JPanel.java:117)
    at java.desktop/javax.swing.JRootPane.createGlassPane(JRootPane.java:521)
    at java.desktop/javax.swing.JRootPane.<init>(JRootPane.java:348)
    at java.desktop/javax.swing.JFrame.createRootPane(JFrame.java:279)
    at java.desktop/javax.swing.JFrame.frameInit(JFrame.java:258)
    at java.desktop/javax.swing.JFrame.<init>(JFrame.java:225)
    at Walkthrough.<init>(Walkthrough.java:7)
    at Walkthrough.lambda$main$0(Walkthrough.java:23)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

The org.pushingpixels.substance.api.skin.SubstanceBusinessLookAndFeel lives in radiance-substance-2.5-SNAPSHOT.jar. I have confirmed it is indeed there with jar tvf:
jar tvf radiance-substance-2.5-SNAPSHOT.jar | grep SubstanceBusinessLookAndFeel
   548 Fri Feb 01 00:00:00 GMT 1980 org/pushingpixels/substance/api/skin/SubstanceBusinessLookAndFeel.class

So at this point I'm sure that I'm messing something up with the classpath, but I just don't know what. I'm on Fedora 28 and my java version is:
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

A:

Well this had nothing to do with the classpath and rather to do with the jar libraries themselves. I observed that the font was not anti-aliased by default on my machine (Fedora 28, using i3-gaps as a window manager). I wondered if this was somehow related and did some reading on Java runtime environment fonts. In essence the fonts looked like this:

But launching the application with this system property: -Dawt.useSystemAAFontSettings=on fixed things:

It turns out that setting this property when launching Walkthrough with Radiance makes it work:
java -Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=org.pushingpixels.substance.api.skin.SubstanceBusinessLookAndFeel -cp .:tmp/radiance-substance-2.5-SNAPSHOT.jar:tmp/radiance-trident-2.5-SNAPSHOT.jar:tmp/radiance-neon-2.5-SNAPSHOT.jar Walkthrough.

Removing this property results in the error of Java being unable to load org.pushingpixels.substance.api.skin.SubstanceBusinessLookAndFeel.
Reading here has more information. I assume because I have customised my Fedora 28 setup (I don't use gnome) is the reason I don't have an gnome-settings-daemon running from which Java uses to get the system defaults and this is somehow a problem for Radiance...? Not sure.
I've informed the Radiance developer about this. I'll update this answer if/when he provides feedback.
UPDATE
The developer confirmed this has a bug in the library. It has been fixed.

