簡體   English   中英

appletviewer / JRE1.6.0_30中的JApplet - getParameter上的NullPointerException(“someArg”)

[英]JApplet in appletviewer / JRE1.6.0_30 — NullPointerException on getParameter(“someArg”)

當我在這個非常簡單的JApplet實例化中調用getParameter()時,為什么會出現NullPointerException

public class TestPad extends javax.swing.JApplet {

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                TestPad appletDefn = new TestPad();

                TestPad.sSomeParam = (String)appletDefn.getParameter("sSomeParam");

                appletDefn.init();

                appletDefn.start();
            }
        });
    }

    private static String sSomeParam = "sSomeArg";

}

沒有安全策略文件,沒有其他包,只有兩個庫:a)swing-layout-1.0.4.jar b)JDK-1.6(默認)

Applet類中方法的實現:

 public String getParameter(String name) {
     return stub.getParameter(name);
 }

因此,對transient private AppletStub stub的方法調用會拋出異常。
Applet具有除正常應用程序之外的其他生命周期。 我建議你看一下關於Applets官方Java教程

  1. 在這里的applet查看器中運行時,該代碼不會拋出NPE。 這對我來說並不奇怪,因為它會加載公共applet類,然后調用init()run() 它在任何時候都不會調用main(String[])
  2. 這讓我得出的結論是,您通過調用main(String[])來運行'applet',而不是使用applet viewer。 以這種方式運行導致NPE,因為沒有設置和初始化applet上下文/存根。 這需要一些工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM