2012-01-24 2 views
0

Я начал изучать Java несколько недель назад, и теперь я нахожусь в создании игры с japplet.Запрещено разрешение на использование Java-апплета, исключение безопасности

Я использую Mac OS X и всякий раз, когда я пытаюсь запустить апплет в браузере я получаю следующее исключение

java.lang.SecurityException: Permission denied: 

Как я могу это исправить, так что JApplet будет работать? Все файлы находятся на локальном компьютере, и я запускаю JApplet локально в браузере.

, следующий за это HTML-код

<html> 
<head> 
    <title>Java Game!</title> 
</head> 
<body> 

    <applet code="/local/path/to/MainApplet.class" 
      width=500 
      height=500> 
    </applet> 

</body> 
</html> 

UPDATE:

Ниже приводится полный вывод консоли:

Java.lang.SecurityException: Permission denied: 
file:/path/to/MainApplet.class 
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Applet2ClassLoader.java:209) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:201) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:678) 
    at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497) 
    at java.lang.Thread.run(Thread.java:680) 
Exception: java.lang.SecurityException: Permission denied: file:/path/to/MainApplet.class 

UPDATE # 2

Я пробовал один и тот же код в Windows, и проблем не было. Только на Mac это исключение, любые идеи?

+0

Что было немного, что произошло после 'Отказано в:'? Ответ на ваш вопрос может быть «не делай этого», или, может быть, «делать это только в подписанном и надежном апплете». Невозможно сказать, что, пока вы не покажете, что это такое. –

+1

* «Я начал изучать Java несколько недель назад, и теперь я нахожусь в процессе создания japplet-игры». * Как и в стороне, программные апплеты не являются хорошим способом изучения программирования Java-GUI. Они значительно сложнее разрабатывать и развертывать, чем (например) «JFrame», запущенный из ссылки с помощью [JWS] (http://stackoverflow.com/tags/java-web-start/info). –

+0

@AndrewThompson курс требует, чтобы мое приложение было развернуто как апплет, у вас нет выбора, к сожалению :(Я также обновил Q. – zentenk

ответ

0

Поскольку апплеты являются компонентами, предоставляемыми из Интернета, инфраструктура безопасности Java требует, чтобы вы подписали апплет, если он будет обращаться к ресурсам локали, таким как запись или чтение с жесткого диска.

Для подписать апплет можно проверить по следующей ссылке: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

+0

Возможно ли, чтобы апплет работал без подписи? Я нахожусь в начале разработки и вынуждена связывать его с банкой и подписывать ее каждый раз слишком много ... также апплет не будет выпущен публике, только для целей классификации – zentenk

+0

@zentenk - это применимо только если вы используете локальную файловую систему - действительно ли вы используете локальную файловую систему в апплете или жалуетесь, что она не может получить доступ к MainApplet.class в первую очередь? Это звучит как последнее. Если класс находится под локальной, а html - локально, попробуйте относительный путь. То есть поместите файл html в путь/в/local и обратитесь к MainApplet.class (без пути) – James

+0

@James Да, он использует локальную файловую систему. Когда я обращаюсь к нему с относительным путем, я получаю сообщение об ошибке, что он не может найти файл класса. Я также установил разрешения для 777, и я все равно получаю тот же результат. – zentenk

Смежные вопросы