Получение java.security.AccessControlException при вызове метода getWidth() класса java.awt.image.RenderedImage.Получение java.security.AccessControlException при вызове метода getWidth() класса java.awt.image.RenderedImage
код, который вызывает проблемы
new Dimension(this.image.getWidth(), this.image.getHeight())
В приведенном выше коде this.image имеет тип java.awt.image.RenderedImage класса
Полный трассировки стека
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.com.sun.media.jai.util") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPackageAccess(Unknown Source) at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkPackageAccess(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at javax.media.jai.ScaleOpImage.layoutHelper(ScaleOpImage.java:228) at javax.media.jai.ScaleOpImage.(ScaleOpImage.java:437) at com.sun.media.jai.opimage.ScaleNearestBinaryOpImage.(ScaleNearestBinaryOpImage.java:77) at com.sun.media.jai.opimage.ScaleCRIF.create(ScaleCRIF.java:123) ... 33 more
NOTE :
Я добавил (а) в моем файле java.policy
permission java.lang.RuntimePermission "accessClassInPackage.*";
permission java.lang.RuntimePermission "accessClassInPackage.com.sun.media.jai.opimage";
Все еще это не сработало. Кто-нибудь столкнулся с этой проблемой? Я бегу апплета JRE версии 1.8.0_45
UPDATE:
же код будет работать нормально с Java 7, если мы добавим следующую запись в файл java.policy
permission java.util.PropertyPermission com.sun.media.imageio.disableCodecLib", "read";
* «Я добавил следующие строки в мой файл java.policy» * файлы политики бесполезны, когда речь идет о для развертывания, и каждый апплет в эти дни нуждается в цифровой подписке, чтобы иметь возможность запускаться в браузере. Таким образом, я бы рекомендовал добавить функциональность в сборку, чтобы ее также подписать, и перейти оттуда (игнорируя файлы политики). –
@ Андрю Томпсон Большое спасибо за ответ. Апплет, который я использую, подписан только. –
* «Applet build, который я использую, подписан только». * Убедитесь, что он декларирует 'all-permissions' в манифесте, а затем файлы политики не имеют значения. –