Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
IE + Sun PlugIn + JAR + Zugriff per file:/ geht nicht mehr
Ich habe ein ganz einfaches Applet, welches einfach den Inhalt einer Datei in der DocumentBase (Zugriff per URL, nicht File) liest. Dieses Applet liegt in einer JAR-Datei und wird über das Applet-Tag in einer HTML-Seite eingebunden.
Das funktioniert seit Java 1.4.2 - weiß nicht genau, ab welcher UnterUnterUnterVersion - nicht mehr, wenn ich es im IE vom lokalen Dateisystem aus starte.
Es funktioniert jedoch, wenn ich eine der folgenden Änderungen vornehme:
- Applet nicht in JAR packen, sondern direkt als Klasse (MyApplet.class) einbinden UND/ODER
- Applet unter MS VM oder älterer SunVM starten UND/ODER
- Applet auf HTTP-Server legen und von da aus starten UND/ODER
- Applet von Mozilla aus starten
Jede dieser Änderungen reicht alleine schon aus, den Bug zu umgehen.
Hat jemand von Euch eine Ahnung, wie man das Problem - im Java-Code oder in der einbinden HTML-Seite - lösen kann, ohne eine meiner genannten Änderungen durchführen zu müssen? Ich will auf JAR nicht verzichten und die anderen der oben genannten Optionen sind sowieso für ein reelles Applet unrealistisch.
Will mein "geht nicht" doch etwas genauer ausdrücken :
Folgende Exception wird angezeigt (die DocumentBase habe ich durch C:\...\ ersetzt):
java.security.AccessControlException: access denied (java.io.FilePermission C:\...\datei.txt read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.File.isDirectory(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
at MyApplet.start(Unknown Source)
Mit der neueren Java-Version wurden dann wahrscheinlich auch andere Sicherheitsrichtlinien eingebaut, so dass der Code, der früher lief nun Auflagen unterliegt, die nur noch mit einer Signierung des Codes erfüllt werden können.
So weit ich aber weiß haben unsignierte Java-Applets keinen Zugriff auf die lokale Verzeichnis- bzw. Dateiebene. Weder lesend noch schreibend. Daher kann ich das nicht glauben, dass Dein Applet jemals lief.
Vielleicht postest Du ja mal den Code von Deinem Programm, dann teste ich es gerne mal.