繁体   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