Java Appet Java.lang.NullPointerException

Java Appet Java.lang.NullPointerException,java,applet,Java,Applet,我正在尝试使用Java小程序在ASP.NET页面中为我的串行端口发送字节 在cshtml中,我使用javascript调用applet <pre><script type="text/javascript"> var attributes = { code: 'Principal.class', archive: 'Applet.jar', width: 325, height: 325 }; va

我正在尝试使用Java小程序在ASP.NET页面中为我的串行端口发送字节

在cshtml中,我使用javascript调用applet

<pre><script type="text/javascript">
        var attributes = {
            code: 'Principal.class', archive: 'Applet.jar', width: 325, height: 325

        };
        var parameters = { fontSize: 16 };
        var version = '1.7';
        deployJava.runApplet(attributes, parameters, version);

        </script></pre>
我的url已在java中列出,并且我的小程序已通过自我验证
有人能帮我吗?

代码的工作原理与Java应用程序非常相似。问题是当我像浏览器中的小程序一样使用相同的代码时。要运行相同的代码,我只需要在打开端口之前加载驱动程序。在java应用程序中,我不需要

如果其他人有同样的问题,为什么代码在java应用程序中工作,而不是像小程序一样工作,答案很简单。 在getportIdentifier之前添加代码:

String driverName=com.sun.comm.Win32Driver

javax.comm.CommDriver driver=null

driver=javax.comm.CommDriver Class.forNamedriverName.newInstance

驱动程序初始化

在java应用程序中,不需要这样做,但像applet一样,您必须这样做。 因此,在复制javax.comm.proprieties等文件之后。。并签署了你的小程序,这段代码有效我只是总结了最后的代码

通信识别器端口


这个问题不会出现在你发布的与applet安全相关的内容中;这是小程序代码中的逻辑问题。如果没有更多相关信息,就不可能提供任何帮助。很明显,错误出现在applet中,而不是HTML中。Principal.java的第99行是做什么的?我的小程序工作正常,我在asp.net应用程序调用之前进行了测试。无论如何,我用小程序的代码编辑了主题。我已经知道问题出在哪里了。不是我的小程序!我说过了……代码的工作原理与java应用程序非常相似。问题是当我像浏览器中的小程序一样使用相同的代码时。要运行相同的代码,我只需要在打开端口之前加载驱动程序。在java应用程序中,我不需要。谢谢你的两张底片。我在问一些问题之前搜索了所有的谷歌,很多人都有同样的问题。我不明白你为什么这样回答我。不像我怀疑的那么明显:
private static final long serialVersionUID = 1L;

    static CommPortIdentifier portId1;
    static CommPortIdentifier portId2;  
    InputStream inputStream;
    OutputStream outputStream;
    SerialPort serialPort1, serialPort2;

    protected String divertCode = "10";
    static String TimeStamp;

    @Override
    public void serialEvent(SerialPortEvent arg0) {}

    public static void main (String[] args){
        try {

            portId1 = CommPortIdentifier.getPortIdentifier("COM11");
            //portId2 = CommPortIdentifier.getPortIdentifier("COM9");

            Principal reader = new Principal();             
        } catch (NoSuchPortException e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
    }

    public Principal(){
        try {
            TimeStamp = new java.util.Date().toString();
            serialPort1  = (SerialPort) portId1.open("Principal",2000);
        //  System.out.println(TimeStamp+":"+portId1.getName()+"porta aberta");

            //serialPort2  = (SerialPort) portId2.open("Principal",2000);
            //System.out.println(TimeStamp+":"+portId2.getName()+"porta aberta");                       
            try {
                serialPort1.setSerialPortParams(115200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
                serialPort1.setDTR(false);
                serialPort1.setRTS(false);
                try {
                    outputStream = serialPort1.getOutputStream();
                    String texto = "Testando envio \n";
                    byte[] envio = texto.getBytes();
                    outputStream.write(envio);
                } catch (IOException e) {                   
                    e.printStackTrace();
                }
            } catch (UnsupportedCommOperationException e) {
                e.printStackTrace();
            }
        } catch (PortInUseException e) {

        }

    }
        String defaultPort = "COM1"; 
        String driverName = "com.sun.comm.Win32Driver";
        javax.comm.CommDriver driver = null;
    
        try 
        {
            driver = (javax.comm.CommDriver) Class.forName(driverName).newInstance();
            driver.initialize();
            
            portId1 = CommPortIdentifier.getPortIdentifier("COM1");
            serialPort1 = (SerialPort) portId1.open("Principal", 2000);
            serialPort1.setSerialPortParams(115200,SerialPort.DATABITS_8, SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
            outputStream = serialPort1.getOutputStream();
            String texto = "Testando envio \n";
            byte[] envio = texto.getBytes();
            outputStream.write(envio);
        } 
        catch (Exception e) {System.err.println (e);}