【问题标题】:Java applet loading images from external jarsJava 小程序从外部 jar 加载图像
【发布时间】:2011-02-03 12:42:02
【问题描述】:

我在服务器上有一个 jar,用户应该能够为它开发扩展。因此应该扩展 jars 主类,并且应该将一些资源添加到第二个用户创建的 jar 中,该 jar 将从另一台服务器或本地加载。现在我在从用户加载的 jar 中访问资源(图像)时遇到问题。结构如下:

我的服务器: game.jar 包含 游戏类 图像类 ... image1.png (...) 当地的: user.jar 包含: user.class 扩展游戏 用户图像.png

扩展是通过 Greasemonkey 加载的,它将“archive”属性修改为“/home/username/user.jar,game.jar”,将“code”属性修改为“user.class”。用户应该能够覆盖已经定义的图像。如果图片在 game.jar 中不存在,则从 user.jar 中正确加载。但是游戏早期加载的图像总是从game.jar加载的,其他的似乎被用户正确覆盖了。有没有办法确保它们总是以正确的顺序加载?这可能是因为某些缓存机制。因为 Greasemonkey 从页面中删除了游戏,更改了存档和代码并重新插入,所以游戏在没有模组的情况下加载了一秒钟。在那个时候,图像会按预期从游戏 jar 中加载,但那些是用户不可覆盖的图像。但是如何避免呢?

另一件事: 如果我覆盖 user.class 中的“运行”方法,游戏根本无法加载任何图像。不是来自 user.jar 也不是来自 game.jar。 Java 找不到图像,因为 URL 对象“getClass().getResource(imagename)”返回 null。我试图覆盖 image.class,但这并不能解决问题,除非我覆盖 game.class 中涉及调用 image.class 的每个类

【问题讨论】:

    标签: java security jar applet classpath


    【解决方案1】:

    我不认为使用带有<applet> 标签的greasemonkey 猴子一定是最好的方法。也许您实际上应该让greasemonkey 脚本与您的applet 通信并告诉它需要什么?

    当然,这就留下了如何让小程序等待脚本的问题,但只有当这样的脚本时...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-26
      • 2013-06-09
      • 2011-06-30
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多