2010-04-01 97 views
0

我在服務器上有一個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

回答

0

我不認爲有<applet>標籤的greasemonkey猴子在這裏一定是最好的方法。也許你應該實際上讓你的小程序與你的小程序進行溝通並告訴它它需要什麼?

當然,留下的如何有小程序等待劇本的問題,但只有當有這樣的腳本...