2010-04-01 3 views
0

서버에 jar 파일이 있고 사용자가이 파일 확장자를 개발할 수 있어야합니다. 따라서 jar 메인 클래스가 확장되어야하고 다른 서버 또는 로컬에서로드 될 두 번째 사용자 생성 된 jar에 일부 리소스가 추가되어야합니다. 이제 사용자로드 항아리에서 리소스 (이미지)에 액세스하는 데 문제가 있습니다. 확장은 그리스 몽키를 통해로드Java 애플릿이 외부 jar에서 이미지로드

 
My Server: 
    game.jar containing 
    game.class 
    images.class 
    ... 
    image1.png (...) 

Local: 
    user.jar containing: 
    user.class extends game 
    userimage.png 

, 그것은 "/home/username/user.jar, game.jar"과 "코드"속성을 "사용자에게"아카이브 "속성을 수정합니다 Heres는 구조입니다 .수업". 사용자는 이미 정의 된 이미지를 덮어 쓸 수 있어야합니다. 이미지가 game.jar에 없으면 user.jar에서 올바르게로드됩니다. 그러나 게임 초기에로드 된 이미지는 항상 game.jar에서로드되고 다른 이미지는 사용자가 올바르게 덮어 쓰는 것처럼 보입니다. 항상 올바른 순서로로드되는지 확인하는 방법이 있습니까? 일부 캐싱 메커니즘 때문일 수 있습니다. Greasemonkey가 페이지에서 게임을 제거하고, 아카이브와 코드를 변경하고 다시 삽입하기 때문에 잠시 동안 mod없이 게임이로드됩니다. 그 시간에 이미지는 게임 병에서 예상대로로드되지만 사용자가 덮어 쓸 수없는 이미지입니다. 그러나 그것을 피하는 방법?

또 다른 것 : user.class에서 "run"메서드를 덮어 쓰면 게임에서 이미지를 전혀로드 할 수 없습니다. user.jar가 아닌 game.jar. URL 객체 "getClass(). getResource (imagename)"가 null을 반환하므로 Java가 이미지를 찾지 못합니다. image.class를 덮어 쓰려고했지만 image.class를 호출하는 것과 관련된 모든 클래스를 game.class에 덮어 쓰지 않으면 문제가 해결되지 않습니다.

답변

0

<applet> 태그로 greasemonkey 원숭이가 있다고 생각하지 않습니다. 반드시 최선의 방법입니다. 아마 당신은 실제로 greasemonkey 스크립트를 애플릿과 통신하여 원하는 것을 말해야합니다. 물론

, 즉 스크립트의 애플릿 대기를하는 방법의 문제 잎하지만 같은 스크립트 ...이 경우에만

관련 문제