作者tkcn (小安)
看板java
标题Re: [问题] Applet执行Comm API发生java.lang.NoCl …
时间Tue Jul 31 16:42:43 2007
昨天回文时 ptt 速度太慢,
乱按了一些键之後就放着没动了,
没想到居然还发出去了 Orz
※ 引述《tjpu4 (香吉蒜)》之铭言:
: ※ 引述《tkcn (小安)》之铭言:
: : 找不到 class: javax/comm/CommPortIdentifier
: : comm.jar 呢?
: 不好意思 我放成comm.jar的捷径了
其实我昨天这样回答有一点误导,
虽然错误讯息是因为 comm.jar,
但即使放了正确的 library,
这支 applet 程式还是无法执行。
: 所以现在 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: 140.114.78.239