【问题标题】:Odd Java Swing UI NullPointerException on Windows Server 2003Windows Server 2003 上的奇怪 Java Swing UI NullPointerException
【发布时间】:2011-05-18 15:04:10
【问题描述】:

我有一个 Swing 应用程序在 Windows XP(32 位)的 Java 1.6.0_20 上运行。我想通过在 Windows Server 2003 上运行的 Citrix 3.0 发布应用程序。但是,当尝试从服务器运行客户端 jar(使用与 XP 上相同的 JRE 和参数,可以正常工作)时,会引发以下异常:

    Exception: java.lang.NullPointerException
    Thu May 17 18:52:09 GMT 2011
    java.lang.NullPointerException
        at com.sun.java.swing.plaf.windows.WindowsRadioButtonUI.installDefaults(Unknown Source)
        at com.sun.java.swing.plaf.windows.WindowsCheckBoxUI.installDefaults(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonUI.installUI(Unknown Source)
        at javax.swing.JComponent.setUI(Unknown Source)
        at javax.swing.AbstractButton.setUI(Unknown Source)
        at com.company.aqqs.displayproject.factory.ToggleFieldFactory.newToggleField(ToggleFieldFactory.java:70)
        at com.company.aqqs.displayproject.factory.ToggleFieldFactory.newToggleField(ToggleFieldFactory.java:120)
        at com.company.aqqs.displayproject.factory.ToggleFieldFactory.newToggleField(ToggleFieldFactory.java:156)
        at com.company.aqqs.ui.MainWindow.getqq_FreezeWindow(MainWindow.java:7546)
        at com.company.aqqs.ui.MainWindow.getqq_GridField131657(MainWindow.java:7588)
        at com.company.aqqs.ui.MainWindow.getqq_RefreshPaneGridField(MainWindow.java:7640)
        at com.company.aqqs.ui.MainWindow.getqq_ToolbarGridField(MainWindow.java:8085)
        at com.company.aqqs.ui.MainWindow.getqq_MainGrid(MainWindow.java:11228)
        at com.company.aqqs.ui.MainWindow.getForm(MainWindow.java:11303)
        at com.company.aqqs.ui.MainWindow.initialize(MainWindow.java:11328)
        at com.company.aqqs.ui.BaseWindow.<init>(BaseWindow.java:109)
        at com.company.aqqs.ui.ExWindow.<init>(ExWindow.java:281)
        at com.company.aqqs.ui.MainWindow.<init>(MainWindow.java:435)
        at com.company.aqqs.ui.MainWindow.launch(MainWindow.java:11544)
        at com.company.aqqs.ui.MainWindow.main(MainWindow.java:11557)

Windows Server 2003 中是否缺少会导致引发 NullPointerException 的内容,同样重要的是,是否有解决方法?

【问题讨论】:

    标签: java swing windows-server-2003


    【解决方案1】:

    我有一种预感,这与每个平台上支持的外观和感觉有关,而 Windows Server 2003 并不完全支持 Java VM 雇用。

    您以这种方式以编程方式设置外观

    /* Choose one of the L&Fs below. */    
    public static void main(String[] args) {
        try {
            // 1. Set System L&F
            UIManager.setLookAndFeel(
                UIManager.getSystemLookAndFeelClassName());
            // 2. or set cross-platform Java L&F (also called "Metal")
            UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
        } 
        catch (UnsupportedLookAndFeelException e) {
           // handle exception
        }
        catch (ClassNotFoundException e) {
           // handle exception
        }
        catch (InstantiationException e) {
           // handle exception
        }
        catch (IllegalAccessException e) {
           // handle exception
        }
    
        new SwingApplication(); //Create and show the GUI.
    }
    

    很可能,明确指定外观并捕获任何异常可能会解决问题。另请参阅Java Tutorials。

    您可能还想比较每个平台上的两个 Java 运行时,尤其是运行时中的 库,即 .jar 文件。

    【讨论】:

      【解决方案2】:

      当微软在操作系统上更改某些内容时,我已经看到过这样的空指针错误。我们的 Java 应用在 Windows 更新后停止工作。

      更新到最新的 JRE 已经解决了我们几次遇到的这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多