问题描述
我在写了个applet程序,该applet有和js交互的,简单来讲就是,applet中写一个方法(用来创建文件的,下面有代码),然后使用js方法去调applet的这个方法(我在applet的object设定scriptable为true)。打包java文件后使用了keytool对jar文件做了签名。但是还是报下面的异常。Ignoredexception:java.security.AccessControlException:accessdenied(java.io.FilePermissionD:Softwareonline13.jpgread)Ignoredexception:java.lang.Exception:java.security.AccessControlException:accessdenied(java.io.FilePermissionD:Softwareonline13.jpgread)那个applet的方法如下:publicvoidwriteFile(){StringfileName=targetDir+ONLINECHECKDIR+"/"+certNo+".jpg";FiletargetFile=newFile(fileName);if(!targetFile.exists()){try{targetFile.createNewFile();}catch(IOExceptione){System.out.print("createNewFileexception:");System.out.println(e.getMessage());}}}
后来反复折腾都没有用,最后,我发现把这个方法放在applet的Init方法中,就可以创建文件成功,不会报异常。为什么使用js去调用就会报异常呢?如果使用js去调用我又该怎么处理呢?希望做过applet的帮忙下谢谢!
解决方案
解决方案二:
解决方案三:
又在网上搜了一遍,终于整出来了。在程序中加入:static{System.setSecurityManager(null);}
就可以了。。。。。