URL url =Thread.currentThread().getContextClassLoader()||getResource("res/trash.gif");
bzw. eine Abwandlung von deinem Vorschlag:publicstaticImageIcongetImageIcon(Class cls,String name){URL url = cls.getResource(name);returnnewImageIcon(url);}
Waere schoen wenn das jemand mit Sachverstandt nochmal testen koennte, dann kann man das Problem als Bug einstellen. Ich denke mal das Problem ist der Classloader - Klassen kann er laden von jar2 aber keine Resourcen wie Bilder.
Für ein zweites Jar brauchst du einen zweiten ClassLoader (URLClassLoader) den du in einem Applet bestimmt nicht erstellen darfst, denn sonst wäre die Signierung sinnlos, wenn man doch überall her laden darf.
Für ein zweites Jar brauchst du einen zweiten ClassLoader (URLClassLoader) den du in einem Applet bestimmt nicht erstellen darfst, denn sonst wäre die Signierung sinnlos, wenn man doch überall her laden darf.
Ein Applet aus mehreren Jars funktioniert mit dem Archive-Attribut. Das Attribut ist aber (genau wie der Rest eines unsigniertem Applets) auf eine URL, die CodeBase des Applets beschränkt. Ein Umweg über PHP (mit "allow_url_fopen = on") könnte aber zum gewünschten Ergebnis führen.
Ein Applet aus mehreren Jars funktioniert mit dem Archive-Attribut. Das Attribut ist aber (genau wie der Rest eines unsigniertem Applets) auf eine URL, die CodeBase des Applets beschränkt. Ein Umweg über PHP (mit "allow_url_fopen = on") könnte aber zum gewünschten Ergebnis führen.
Ich kenne und nutze das Archiv-Attribut. Mein Applet funktioniert auch sehr gut - alle Klassen von beiden jars werden geladen. Nur das Laden der Resourcen aus dem nicht-codebase jar funzt nicht. Wirklich! Hat mich auch ueberrascht.
Was meinst du wenn du sagst: Das Attribut ist aber (genau wie der Rest eines unsigniertem Applets) auf eine URL, die CodeBase des Applets beschränkt???
Das ich nur von dieser Domain Dateien laden darf? Das weiss ich. Aber man sollte doch annehmen, dass ich Resourcen laden kann die sich in den jar files befinden? Das kann ich naemlich nicht - zumindest nicht wenn sich diese im jar der 2ten Domain (der nicht-Codebase Domain befinden.)
Kannst du deine Bemerkung zu: allow_url_fopen = on ein bissl genauer elaborieren? Ich kenne mich mit PHP nicht aus. Ich zweifle auch, dass man einfach so den Applet Sicherheitsmechanismus aushebeln kann - lass mich aber gerne eines Besseren belehren.
Ich kann!
1. Ein unsigniertes Applet kann nur mit dem Ursprungsserver (Domain) kommunizieren. Deswegen kannst du auch auf das Jar auf dem 2. Server (andere Domain) nicht zugreifen.
2. "allow_url_fopen" ist eine PHP-Einstellung, mit welcher man PHP erlauben kann Ressourcen aus dem Internet zu beziehen, etwa mit "include" oder "require". Diese Einstellung ist natürlich serverseitig.
Die Idee ist nun, vom Applet des 1. Servers ein PHP-Script auf selbigem aufzurufen, welches nun die Ressource vom 2. Server holen und an das Applet des 1. Servers (dem Aufrufer) weiterleiten kann. Völlig transparent, keine Applet-Signierung nötig. Aber Achtung: "allow_url_fopen" gilt in PHP als "UNSAFE".
Ich kann!
1. Ein unsigniertes Applet kann nur mit dem Ursprungsserver (Domain) kommunizieren. Deswegen kannst du auch auf das Jar auf dem 2. Server (andere Domain) nicht zugreifen.
Ich will auch nicht auf die Domain von Server2 zugreifen, sondern auf in dem Jar von Server2, ein Jar, welches das Java Plugin vollstaendig runtergeladen hat. Warum kann ich das nicht?