9

For some reason we use com.sun.java.swing.plaf.windows.WindowsComboBoxUI class which worked on Windows/Linux/Mac OS platforms with Java 5.0 through Java 8.0

Starting with Java 10 and Java 11 (we will stick to it as LTS) this class not visible to classloader:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsComboBoxUI
at xxx.YYY.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.java.swing.plaf.windows.WindowsComboBoxUI
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more

How can we get it working?

Barat Sahdzijeu
  • 1,683
  • 1
  • 18
  • 29
  • 2
    Related reads [Internal APIs encapsulation](http://openjdk.java.net/jeps/260), [Add a public API to create a L&F without installation](https://bugs.java.com/view_bug.do?bug_id=JDK-8136366), [Inaccessible and unused classes can be removed from java.desktop module](https://bugs.java.com/view_bug.do?bug_id=JDK-8185683) – Naman Nov 23 '18 at 07:13
  • 3
    Non-Windows builds no longer include the Windows LAF, see: https://bugs.openjdk.java.net/browse/JDK-6461834 – Alan Bateman Nov 23 '18 at 07:54

1 Answers1

8

We were able to replace com.sun.java.swing.plaf.windows.WindowsComboBoxUI in the code with javax.swing.plaf.basic.BasicComboBoxUI and it seems working fine.

Barat Sahdzijeu
  • 1,683
  • 1
  • 18
  • 29