Java Html嵌入applet 来读取客户端串口

1 篇文章 0 订阅

写在前面,之前没搞过html嵌入applet来读取本地客户端串口,就直接使用RXTXcom.jar  来直接读取本机串口,这个是没问题的如下:

RXTX 有三个文件  有针对操作系统64 还有32的
1.RXTXcomm.jar  导入项目中
2.rxtxParallel.dll/rxtxSerial.dll两个dll放到jdk\jre\bin目录下。
防止运行过程中抛出 java.lang.UnsatisfiedLinkError 错误或 gnu.io 下的类找不到,请将rxtx解压包中的 rxtxParallel.dll,rxtxSerial.dll 这两个文件复制到 C:\Windows\System32 目录下即可解决该错误。

可以通过html调用java类来操作,直到有一次把服务端部署到另外一台设备上,在本地打开页面时发现不能读 。。。

欠考虑

html 可以通过嵌入applet来调用客户端的串口。

首先自己可以写一个applet类,如下:

public class HelloWorld extends JApplet  {

 public void paint(Graphics g) {
             g.drawString("Hello Applet!", 5, 30);//绘制文本
             g.drawArc(80,50,40,40,20,360);//绘制一个圆形
        }

}

html页面写

 <applet name="helloWorld"  code="HelloWorld.class" codebase="."  width="500" height="300">
    </applet>

code:是你的类所在的位置:包名+类

codebase=“.” 这种写法就是 该类和html是在一个路径下如果不在一起这写你的类所放置的位置。

你可以把他们放到tomcat的ROOT目录下运行后,是这样子的。

你可以创建一个工程 ,直接运行该applet类,首先要保证该applet类是能运行的。

好了说重点了,网上都是说没问题,但是怎么配置都不暴露。

首先博主使用的jdk1.8 64位安装版,安装后需要到控制面板中找到Java 然后在安全里面把访问地址:如http://localhost:8080加入到例外站点。如图

博主使用的是chrome浏览器,注意 chrome浏览器的版本在大于42之后就不在支持applet了。所以要下载chrome42浏览器。网上有,就不在公布连接了。

chrome浏览器还要设置NPAPI插件 开启

地址栏输入:

chrome://flags/#enable-npapi

设置后是

然后 在安装java8目录下找到 安装的jre 找到C:\Program Files\Java\jre1.8.0_221\lib\security  java.policy

在grant中加入 permission java.security.AllPermission;

到此 你打开你的html页面时 你应该就能看到该applet 图形了。

-----------------------------------------------------分割线------------------------------------------------------------、

jar的调用  首先把你的类打成jar包,博主使用的是myeclipse  可以直接右键导出时选择jar

如你设置证书、签名则使用如下步骤:cmd进入你的jdk安装目录 的jdk的bin目录下

1使用keytool工具生成密匙库 :

\jdk1.7.0_13\bin>keytool -genkey -keystore ScaleApplet.store -alias sa


2使用keytool工具导出签名时用到的证书 :
\jdk1.7.0_13\bin>keytool -export -keystore RXTXSerial.store -alias sa -file RXTXSerial.cert
输入密钥库口令:
存储在文件 <RXTXSerial.cert> 中的证书


3使用jarsigner工具签名jar压缩文档
\jdk1.7.0_13\bin>jarsigner -keystore RXTXSerial.store RXTXSerial.jar sa
输入密钥库的密码短语:

警告:
签名者证书将在六个月内过期。

jar包处理完毕后可以把该jar放到你的工程webroot文件夹下

页面调用是这样的:

<script type="text/javascript">
function getCard(){
 var weight = document.helloWorld.getCardNo();//获取applet类里面的方法
        if(weight!=null&&weight!=''){
            document.getElementById("weightSpan").innerHTML=weight;
        }
}
</script>
  </head>
  <body >
    <applet name="helloWorld"  code="rxtx.RXTXSerial.class" codebase="./rxtx/" 
         ARCHIVE="RXTXSerial.jar,RXTXcomm.jar" width="500" height="300">
    </applet>
    <span id="weightSpan"></span>
    <button οnclick="getCard();">读卡</button>
  </body>
</html>

至此Html页面调用applet流程完毕。本文是博主自己实测有效的流程,如对您有帮助,您可参考,无帮助勿喷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值