загрузка классов Java от апплета со знаком

попробуйте это

откройте файл build.gradle

  android {
        dexOptions {
           javaMaxHeapSize = "4g"
        }
   }
5
задан Mohit Kanwar 6 August 2015 в 08:55
поделиться

3 ответа

Я думаю, что классы ленивы загруженный в апплетах. быть загруженным по требованию.

Так или иначе, если классы за пределами банки, можно просто использовать апплет classloader и загрузить их по имени. Исключая:

ClassLoader loader = this.getClass().getClassLoader();
Class clazz = loader.loadClass("acme.AppletAddon");

Если Вы хотите загрузить классы из банки, я думаю, что необходимо будет создать новый экземпляр URLClassLoader с URL банки (банок).

URL[] urls = new URL[]{new URL("http://localhost:8080/addon.jar")};
URLClassLoader loader = URLClassLoader.newInstance(urls,this.getClass().getClassLoader());
Class clazz = loader.loadClass("acme.AppletAddon");

По умолчанию апплетам запрещают создать новый classloaders. Но если Вы подписываете свой апплет и включаете разрешение создать новый classloaders, можно сделать это.

5
ответ дан 14 December 2019 в 09:05
поделиться

Да, можно открыть соединения URL с хостом, от которого Вы выполнили свой апплет. Можно или создать classloader с URL HTTP, или загрузить классы (как банки) к машине пользователя и создать classloader с теми банками в пути к классу. Апплет не остановится, и Вы не должны загружать другую страницу.

Относительно второй части Вашего вопроса об уверенности, когда-то пользователь предоставил доступ к Вашему апплету, это может загрузить что-либо, да что-либо, это хочет к локальной машине. Можно, вероятно, сообщить пользователю относительно того, что это делает, если дизайн UI разрешает это.

Надеюсь, это поможет.

2
ответ дан 14 December 2019 в 09:05
поделиться

Кажется, что это должно быть возможно (но я никогда не делал этого). Вы уже взглянули на Вызов удаленного метода (RMI)?

0
ответ дан 14 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: