有请在Applet中通过javax.comm访问本地串口的高手

hairinwind 2002-04-07 09:33:55
我的程序在application 中可以通过,在applet中遇到的安全性问题我也修该了java.policy 文件

现在出现违例
Caught java.lang.NullPointerException: name can't be null while loading driver com.sun.comm.Win32Driver

请问这是什么原因,是不是因为找不到 win32com.dll ,如何解决

万分感谢
...全文
49 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
GJA106 2002-04-27
  • 打赏
  • 举报
回复
applet的安全机制,你设置了吗?
跟applet读取本地文件一样,要进行安全设置applet才能访问本地资源。
串口算不算本地资源。
hairinwind 2002-04-08
  • 打赏
  • 举报
回复
xbt

我安装完全按照帮助文档

我的代码在applet中全部运行正常,但是同样的代码到 applet 就会报上面的错误

您在 applet 跑过吗???

谢谢
谢谢
xbt 2002-04-08
  • 打赏
  • 举报
回复
我在JDK1.3.1上用Javax.comm调通了得呀,建议你看Javax.comm包随身带得帮助,即如何配置Javax.comm包,不是就直接放到ClassPath下那么简单的。
Copy win32com.dll to your <JDK>\bin directory.
C:\>copy c:\commapi\win32com.dll to c:\jdk1.3.1\bin
Copy comm.jar to your <JDK>\lib directory.
C:\>copy c:\commapi\comm.jar c:\jdk1.3.1\lib
Copy javax.comm.properties to your <JDK>\lib directory.
......................
下面还有好多啦,你只要按照帮助文档所说的去做,肯定能成功。建议你和超级终端配合使用。
hairinwind 2002-04-08
  • 打赏
  • 举报
回复
哪里可以下
javax.commAPI 2.0.1 for Winnt/2000

谢谢
hairinwind 2002-04-08
  • 打赏
  • 举报
回复
救命啊

程序其他部分必须使用 jdk_1.3.1_02

javax.commAPI 2.0.1 好像不是Linux上跑的吧,NT上的最新版本是什么

谢谢二位高手,在给点提示吧!!!

谢谢
lxf428 2002-04-08
  • 打赏
  • 举报
回复
你也可下载一下javax.commAPI 2.0.1解决此问题。
lxf428 2002-04-08
  • 打赏
  • 举报
回复
以下代码我编译通过了,增加了一句 System.setSecurityManager(null);


package javacomm;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.comm.*;
import java.util.*;
import javax.swing.*;

public class Applet1 extends Applet {
boolean isStandalone = false;
static CommPortIdentifier portId;
static Enumeration portList = null;
JTextArea jTextArea1 = new JTextArea();
BorderLayout borderLayout1 = new BorderLayout();

//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}

//Construct the applet
public Applet1() {
}
//Initialize the applet
public void init() {
try {
jbInit();

String drivername = "javax.comm.CommDriver";
System.setSecurityManager(null);
try {
CommDriver driver =
(CommDriver)Class.forName(drivername).newInstance();
driver.initialize();
} catch (Exception e) {
System.out.println (e.getMessage ());
}

portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
System.out.println(portId.getName());
jTextArea1.setText(jTextArea1.getText() + portId.getName());
}

}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
jTextArea1.setText("jTextArea1");
this.setLayout(borderLayout1);
this.add(jTextArea1, BorderLayout.CENTER);
}
//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}

public void start(){
// portList = CommPortIdentifier.getPortIdentifiers();
}

public static void main(String[] args){
Applet1 applet1=new Applet1();
applet1.start();
}

}
lxf428 2002-04-08
  • 打赏
  • 举报
回复
这个问题在国外的论坛上早就吵暴了,在Linux下可以解决,在Windows/2000下没有解决呢,我看的时候只有两种解决方案一种是Java commAPI升级到2.0.1.,一种是采用Jdk1.1.x。
你可以到ibm和sun 的网站上查一下资料,看有没有新的解决方案,在这儿耗是没意义的。
xbt 2002-04-08
  • 打赏
  • 举报
回复
我用的是JSP+JavaBean

Applet需要一些什么验证之类的,和JavaX.comm没有关系,你在Applet下用打印机之类的,也需要填充一些验证之类的参数,具体参考HTML语法,和Java没有任何关系
lxf428 2002-04-07
  • 打赏
  • 举报
回复
这是javax.comm API的毛病,采用jdk 1.1.x就不会出现这个问题了。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧