I’ve been setting up a 2018 MacBook Pro for Java development. It’s running Mojave 10.14.1 – just like the older machine I’m migrating from, an early 2013 MacBook Pro. I installed Java 1.8.0_192 and immediately noticed that I could not launch jars or any Java app that had a UI on this mac. I uninstalled and tried each of these: 1.8.0_172, 1.8.0_191, 1.8.0_192, and 11.0.1. I traced the issue further and found a common error:
Caused by: java.lang.NullPointerException at java.awt.Window.init(Window.java:497) at java.awt.Window.<init>(Window.java:537) at java.awt.Frame.<init>(Frame.java:420) at java.awt.Frame.<init>(Frame.java:385) at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763) at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838) at javax.swing.JWindow.<init>(JWindow.java:187) at javax.swing.JWindow.<init>(JWindow.java:139)
Curious, I launched our Swing-based product and it reported the same error. I googled and found only unanswered posts.
(revising this to be formatted as a question and not a blog post)
The solution to this problem was simple, but not immediately obvious.
I dug into the JVM and found that the native code wasn’t able to identify a compatible graphics mode from the OS. This results in a null GraphicsConfiguration. That’s not good – it causes a NullPointerException in Window.java…guess what line. (Line 497)
I suspected the OS wasn’t returning the right information about its graphics setup and then started to suspect the graphics driver. That’s when I remembered Macs have parameter RAM (PRAM) and non-volatile RAM (NVRAM).
I zapped the PRAM and NVRAM and now the machine is working fine!
To zap the PRAM and NVRAM:
If your mac starts up without the disappearing mac logo, shut it down and retry.
I hope resetting the PRAM helps others!