作者tjpu4 (香吉蒜)
看板java
标题Re: [问题] Applet执行Comm API发生java.lang.NoCl …
时间Wed Aug 1 15:02:00 2007
谢谢 tkcn给了 sign applet这个方向
於是我参照javaworld里面 sign applet的教学使用keytool及jarsigner
然後制作了Sent.jar与Sent.crt
在html里 archive=" Sent.jar , comm.jar"
现在applet的确会跳出确认视窗了
可是..
依然不能执行
java 主控台的错误讯息为
java.lang.NoClassDefFoundError: Could not initialize class javax.comm.Comm
PortIdentifier
at TransmitterApplet.init(TransmitterApplet.java:26)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
请问这是程式有问题的意思麽?
我的第26行程式为
CommPortIdentifier com = CommPortIdentifier.getPortIdentifier("COM1");
另外一个不解的地方就是
如果使用 appletviewer看html的话
错误讯息则是跟没做 sign applet之前一样
实在很怪 :(
※ 引述《tkcn (小安)》之铭言:
: ※ 引述《tjpu4 (香吉蒜)》之铭言:
: : 所以现在 Java主控台的错误讯息就跟appletviewer显示的错误讯息类似了(见下)
: : 那想请问的是
: : "Caused by...."的错误讯息是代表什麽意思呢?
: : java.lang.ExceptionInInitializerError
: : at TransmitterApplet.init(TransmitterApplet.java:25)
: : at sun.applet.AppletPanel.run(Unknown Source)
: : at java.lang.Thread.run(Unknown Source)
: : Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission javax.comm.properties read)
: 存取被拒绝,原因就是 sandbox
: applet 是用於网页上的小程式,
: 基於安全理由,它不允许你做任何的 IO 操作,
: (存取本机电脑 及 网路连线...等,只有网页 server 例外)
: 否则一旦开了恶意的 applet,
: 电脑就如同中了木马一般。
: sandbox 的概念就是,
: 只允许你在盒子里面操作,
: 所以无论你在盒子里做了什麽事,
: 都不会影响到盒子外的世界。
: 如果有特殊的需求,
: 可以使用 sign applet,
: 再开启程式前会先出现确认视窗,
: 待使用者同意後,
: 程式便能够有较高的存取权限。
嗯嗯 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.18.60.138