4

Я пытаюсь прочитать envrionment из Название переменной апплета, вот мой кодjava.lang.RuntimePermission при запуске апплета из веб-приложения

String env = System.getenv("TWS"); 
    System.out.println(env); 
    Runtime rt = Runtime.getRuntime(); 
    String s = env + "\\WebStart.bat " ; 
    System.out.println(s); 
    try { 
     Process p = rt.exec(s); 
    } catch (Exception e) { 
    } 

, когда я запускаю код с помощью NetBeans щелкните правой кнопкой мыши и запустить, он работает без проблем.

но когда я положил его в файл банку, добавить его к моему веб-приложение и попробуйте запустить его из HTML страницы, используя следующий код

<applet code="draw.class" archive='AppletTest.jar'> 
    <param name="shape" value="triangle"/> 
</applet> 

Я получаю ошибку о том, доступ запрещен , java.lang.RuntimePermission

я бег это веб-приложение, с помощью Tomcat 6.

я прочитал некоторые путеводители и добавил следующую запись в файле catalina.policy в коте 6 и перезапуск кота

permission java.lang.RuntimePermission "accessDeclaredMembers"; 

но все же такое же предупреждение. может ли кто-нибудь предложить решение этой проблемы?

--rangana

ответ

3

При запуске апплета из NetBeans, виртуальные машины Java работает под другим режимом безопасности, чем при запуске его через браузер.

Апплеты, загруженные через браузеры, которые не подписаны с использованием сертификата безопасности, считаются ненадежными и называются беззнаковыми апплетами. При работе на клиенте беззнаковые апплеты работают в изолированной программной среде безопасности, которая обеспечивает только набор безопасных операций. Вы можете проверить, предоставлено ли вам разрешение на клику или нет, используя SecurityManager. Например, в вашем случае:

System.getSecurityManager().checkPermission(new RuntimePermission("accessDeclaredMembers")); 

Вы можете узнать больше о апплета безопасности here и here. Очень хороший учебник по созданию подписанных апплетов можно найти here.

+0

+1 Как в сторону. Вы отправили сообщение usenet (comp.lang.java) под тем же идентификатором? –

+0

@AndrewThompson: Нет. Никогда не использовал это. –

+0

используя подписанный апплет, я смог выполнить эту задачу, спасибо за помощь :) –

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