Java Appet Java.lang.NullPointerException
我正在尝试使用Java小程序在ASP.NET页面中为我的串行端口发送字节 在cshtml中,我使用javascript调用appletJava 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
<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);}