我已经创建了一个用于录制声音的小程序。当我尝试打开数据线时会抛出异常。
TargetDataLine.open()
java.security.AccessControlException:拒绝访问(javax.sound.sampled.AudioPermission记录)
我的applet是自签名的,所有其他jar文件都是自签名的。
以前我使用不同的线程来启动TargetDataLine
并关闭该行。后来而不是创建另一个线程,我切换到Executorservice
。它适用于线程,但在ExecutorService
的情况下抛出异常。
答案 0 :(得分:2)
由于执行程序服务在从javascript调用时启动新线程,因此线程的安全级别设置为javascript线程的安全级别。
所以使用AccessControl.doPrivilaged有助于解决问题。Explained here how to do it.