Выполнение файла JNLP вызывает исключение AccessControlException.

Я пытаюсь выполнить это приложение jnlp. Однако я продолжаю получать это исключение безопасности:

java.lang.ExceptionInInitializerError
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:399)
    at java.lang.Class.newInstance0(Class.java:370)
    at java.lang.Class.newInstance(Class.java:322)
    at com.sun.javafx.applet.FXApplet2.init(FXApplet2.java:63)
    at com.sun.deploy.uitoolkit.impl.fx.FXApplet2Adapter.init(FXApplet2Adapter.java:207)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.net.useSystemProxies" "write")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364)
    at java.security.AccessController.checkPermission(AccessController.java:560)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.System.setProperty(System.java:783)
    at ensemble.Ensemble2.<clinit>(Ensemble2.java:77)
    ... 10 more

Я попытался изменить параметры безопасности в панели управления Java (OSX 10.8.3), но они, кажется, отключены, и я не могу их изменить (я могу проверить параметр «Включить содержимое Java в браузере», но он сбрасывается, когда нажимаю применить). Это показано на следующем рисунке:

Вкладка

Есть ли другой механизм обхода диспетчера безопасности Java и возможности запуска приложения jnlp?

ОБНОВЛЕНИЕ:

После переустановки Java я, наконец, смог изменить параметры безопасности в панели управления Java (ничего особенного не делал, просто переустановил с нуля). К сожалению, когда я запускаю приложение jnlp, оно молча умирает, не показывая никаких ошибок. Эта проблема может быть связана с тем, что я использую jdk 1.8 (поскольку приложение jnlp требует javafx), и это всего лишь предварительная версия (и OSX, похоже, не очень любит Java в наши дни...), это мое лучшее предположение, но я не могу быть полностью уверен.


person Sergio    schedule 02.04.2013    source источник
comment
проверить файл с помощью инструмента JaNeLA   -  person Nikolay Kuznetsov    schedule 02.04.2013


Ответы (1)


Возможные причины этого:

  1. Я слышал, что Java 7 на Mac все еще не стабильна.
  2. По умолчанию файлы JNLP запускаются в «песочнице», чтобы вредоносный код не мог нанести ущерб вашей системе. Эта песочница ограничивает доступ к локальной файловой системе и локальной сети. Я предполагаю, что системные свойства тоже ограничены, и похоже, что приложение пытается писать в них. Чтобы разрешить неограниченный доступ, вам необходимо подписать файл JAR и настроить файл JNLP с помощью <security><all-permissions/></security>.
person Matthew Wise    schedule 15.11.2013