2025-03-31 8:59 AM
On Kubuntu 24.04 when double clicking on
SetupSTM32CubeProgrammer-2.19.0.linux
an empty window appears and then closes again.
If I run
SetupSTM32CubeProgrammer-2.19.0.linux
via the terminal (as admin or as user), I get this error:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
       at sun.awt.X11FontManager.getFileNameFromPlatformName(X11FontManager.java:174)
       at sun.font.SunFontManager.initCompositeFonts(SunFontManager.java:3506)
       at sun.font.SunFontManager.access$800(SunFontManager.java:65)
       at sun.font.SunFontManager$2.run(SunFontManager.java:555)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.font.SunFontManager.<init>(SunFontManager.java:386)
       at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
       at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
       at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
       at java.lang.Class.newInstance(Class.java:442)
       at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
       at sun.font.SunFontManager.getInstance(SunFontManager.java:250)
       at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:264)
       at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1125)
       at javax.swing.JComponent.getFontMetrics(JComponent.java:1626)
       at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:372)
       at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:345)
       at javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:182)
       at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
       at javax.swing.JComponent.paintComponent(JComponent.java:780)
       at javax.swing.JComponent.paint(JComponent.java:1056)
       at javax.swing.JComponent.paintChildren(JComponent.java:889)
       at javax.swing.JComponent.paint(JComponent.java:1065)
       at javax.swing.JComponent.paintChildren(JComponent.java:889)
       at javax.swing.JComponent.paint(JComponent.java:1065)
       at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
       at javax.swing.JComponent.paintChildren(JComponent.java:889)
       at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217)
       at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290)
       at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
       at javax.swing.JComponent.paint(JComponent.java:1042)
       at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
       at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79)
       at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116)
       at java.awt.Container.paint(Container.java:1978)
       at java.awt.Window.paint(Window.java:3906)
       at javax.swing.RepaintManager$4.run(RepaintManager.java:842)
       at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
       at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
       at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
       at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
       at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
       at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
       at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
       at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
       at java.awt.EventQueue.access$500(EventQueue.java:97)
       at java.awt.EventQueue$3.run(EventQueue.java:709)
       at java.awt.EventQueue$3.run(EventQueue.java:703)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
       at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
       at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
       at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
       at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
       at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
SEVERE: The language pack couldn't be initialized.
Action invocation failed
SEVERE: com.izforge.izpack.api.exception.IzPackException: java.lang.NullPointerExceptionSolved! Go to Solution.
2025-04-18 9:15 AM
Hello @mx_ch
Please check this thread: Solved: Re: After upgrade to CubeProgrammer 2.18.0 cannot ... - STMicroelectronics Community
Hope it helps !
Aziz
2025-04-18 9:15 AM
Hello @mx_ch
Please check this thread: Solved: Re: After upgrade to CubeProgrammer 2.18.0 cannot ... - STMicroelectronics Community
Hope it helps !
Aziz
2025-10-27 3:23 AM
OK, so the answer is: STM Cube Programmer does not run on KDE and KDE users should just install a different Linux distro to be able to run STM Cube Programmer. 
2025-10-28 2:01 AM
Or to be more specific: Maybe CubeProgrammer would run on KDE, but we can't know, because the package ST is using in their installer for uncompressing the binary for installation is failing under KDE. If someone sends me an unpacked binary, I could try if it runs. Honestly, ST should just modernize their app so it comes in a flatpack/snap/Appimage, or go the different route and provide the binary.
