서버에 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에 덮어 쓰지 않으면 문제가 해결되지 않습니다.