我在服務器上有一個jar,用戶應該能夠爲它開發擴展。因此,應該擴展jar主類,並將一些資源添加到第二個用戶創建的jar中,該jar將從另一個服務器或本地加載。現在,我無法從用戶加載的罐子中訪問資源(圖像)。赫雷什爲以下結構:Java applet從外部jar加載圖片
My Server: game.jar containing game.class images.class ... image1.png (...) Local: user.jar containing: user.class extends game userimage.png
延伸通過的Greasemonkey加載,它修改「歸檔」屬性爲「/home/username/user.jar,game.jar」和「代碼」屬性爲「用戶。類」。用戶應該能夠覆蓋已經定義的圖像。如果圖像不存在於game.jar中,它將從user.jar正確加載。但是在遊戲早期加載的圖像總是從game.jar加載,其他人似乎被用戶正確覆蓋。有沒有辦法確保它們總是以正確的順序加載?這可能是因爲一些緩存機制。由於Greasemonkey從頁面中移除遊戲,更改存檔和代碼並將其重新插入,所以遊戲在短暫的時間內不加載mod。在那個時候,圖像按照遊戲jar的預期加載,但那些是用戶不能覆蓋的。但如何避免它?
另一件事: 如果我覆蓋user.class中的「run」方法,遊戲根本無法加載任何圖像。不是來自user.jar而是來自game.jar。 Java沒有找到圖像,因爲URL對象「getClass()。getResource(imagename)」返回null。我試圖覆蓋image.class,但這並沒有解決問題,除非我覆蓋game.class中的每一個類,調用image.class