我在服务器上有一个jar,用户应该能够为它开发扩展。因此,应该扩展jar主类,并且应该将一些资源添加到第二个用户创建的jar中,该jar将从另一个服务器或本地加载。现在我从用户加载的jar访问资源(图像)时遇到问题。 Heres是结构:
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从页面中删除游戏,更改存档和代码并重新插入,游戏加载时没有mod短暂的一秒。在那个时候,图像从游戏罐中按预期加载,但那些是用户不能覆盖的图像。但是如何避免呢?
另一件事: 如果我覆盖user.class中的“run”方法,则游戏根本无法加载任何图像。不是来自user.jar而不是来自game.jar。 Java找不到图像,因为URL对象“getClass()。getResource(imagename)”返回null。我试图覆盖image.class,但这并没有解决问题,除非我覆盖game.class中涉及调用image.class的每个类
答案 0 :(得分:0)
我不认为拥有<applet>
标签的greasemonkey猴子一定是最好的方法。也许您应该让greasemonkey脚本与您的applet通信并告诉它需要什么?
当然,这就留下了如何让applet等待脚本的问题,但只有当 这样的脚本时......