У меня есть jar на сервере, и пользователи должны иметь возможность разрабатывать расширения для него. Поэтому основной класс jars должен быть расширен, а некоторые ресурсы должны быть добавлены во второй созданный пользователем jar, который будет загружен с другого сервера или локально. Теперь у меня проблемы с доступом к ресурсам (изображениям) из загруженных пользователем фляг. Вот структура:
My Server:
game.jar containing
game.class
images.class
...
image1.png (...)
Local:
user.jar containing:
user.class extends game
userimage.png
Расширение загружается через Greasemonkey, оно изменяет атрибут «archive» на «/home/username/user.jar, game.jar» и атрибут «code» на «user.class». Пользователь должен иметь возможность перезаписывать уже определенные изображения. Если изображение не существует в game.jar, оно корректно загружается из user.jar. Но изображения, загруженные в начале игры, всегда загружаются из game.jar, другие, похоже, корректно перезаписываются пользователем. Есть ли способ убедиться, что они всегда загружены в правильном порядке? Это может быть из-за какого-то механизма кэширования. Поскольку Greasemonkey удаляет игру со страницы, изменяет архив и код и заново вставляет его, игра загружается без мода на короткую секунду. В это время изображения загружаются, как и ожидалось, из игрового фляги, но они не перезаписываются пользователем. Но как этого избежать?
Другое дело:
Если я перезаписываю метод run в user.class, игра вообще не может загрузить какое-либо изображение. Не из user.jar и не из game.jar. Java не находит изображение, так как объект URL "getClass (). GetResource (imagename)" возвращается с нулем. Я попытался перезаписать image.class, но это не решило проблему, если только я не перезаписал каждый класс из game.class, участвующий в вызове image.class