为什么Oracle SQL Developer在Mac OS上启动时会出现空指针异常

时间:2018-04-04 17:37:22

标签: java oracle oracle-sqldeveloper

当我启动全新安装的Oracle SQL Developer时,图标会在停靠栏中弹回一点然后消失。

当我通过CLI启动时,我收到此错误:

Oracle SQL Developer
 Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.

java.lang.IllegalStateException: Problem creating splash screen on ETD.
    at oracle.ide.osgi.boot.SplashScreenImpl.SynchronizeWithEdt(SplashScreenImpl.java:541)
    at oracle.ide.osgi.boot.api.SplashScreen.createInstance(SplashScreen.java:66)
    at oracle.ide.osgi.boot.OracleIdeLauncher.showSplashScreen(OracleIdeLauncher.java:828)
    at oracle.ide.osgi.boot.OracleIdeLauncher.main(OracleIdeLauncher.java:109)
Caused by: java.lang.reflect.InvocationTargetException
    at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1328)
    at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1303)
    at java.desktop/javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1475)
    at oracle.ide.osgi.boot.SplashScreenImpl.SynchronizeWithEdt(SplashScreenImpl.java:537)
    ... 3 more
Caused by: java.lang.NullPointerException
    at java.desktop/java.awt.Window.init(Window.java:495)
    at java.desktop/java.awt.Window.<init>(Window.java:535)
    at java.desktop/java.awt.Frame.<init>(Frame.java:423)
    at java.desktop/java.awt.Frame.<init>(Frame.java:388)
    at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
    at oracle.ide.osgi.boot.OracleIdeLauncher$2.getHiddenWindow(OracleIdeLauncher.java:807)
    at oracle.ide.osgi.boot.api.SplashScreen$1.run(SplashScreen.java:61)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
    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)
A fatal error in the IDE boostraping code. Exiting ...

我试图验证JDK版本是否正确,并且没有其他缺少的依赖项。导致此错误的原因是什么?

修改:

目前使用DisplayLink驱动程序

通过Dell D6000基座连接到minidisplay端口

MacBook Pro(15英寸,2017年),High Sierra v10.13.3,DisplayLinkDriver v4.0.0(85514)

$ java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

1 个答案:

答案 0 :(得分:6)

拔掉头发之后,一位同事发现了原因:我正在使用多台显示器。

事实证明,启动画面试图在主显示器上显示但由于某种原因无法显示。断开我的额外显示解决了问题并允许我启动应用程序。启动后,我插入显示器并将窗口拖到它们上面,没问题。

TLDR:将主显示器设置为Macbook屏幕或使用一台显示器启动

您可以使用聚光灯搜索displays来更改主监视器,然后将白条拖动到实际的计算机显示屏(在我的情况下是macbook屏幕)。