Java-Sicherheitsausnahme

1

Okay, ich arbeite an einem Karten-Matching-Spiel in Java für meine Informatikaufgabe und alles lief perfekt, bis ich das Applet auf einer Seite öffnen wollte. In Eclipse funktioniert es gut ..

Ich öffne die Seite und erhalte die Fehlermeldung "Sicherheitsausnahme. Ihre Sicherheitseinstellungen haben Ihre Anwendung blockiert." Früher habe ich das nicht bekommen, bevor ich auf die neue Java-Version aktualisiert habe. Ich habe die App auf einer Website hochgeladen, falls jemand nach Fehlern suchen wollte, aber überraschen! Es funktioniert gut, wenn auf einer Website.

http://sergius.webatu.com/game.html -> funktioniert so wie ich es ausnehme. aber wenn ich nur die Datei game.html mit allen Dateien in ihrem Ordner öffne, wird sie nur blockiert und startet nicht. Ich habe es nicht blockiert oder so.

Die Sache ist, ich werde keinen Zugang zum Internet haben, also kann ich ihnen nicht sagen "Hey, geh auf diese Seite, es funktioniert nur dort!"

Anmerkungen: Ignorieren Sie den rumänischen Mambo Jumbo. Beim Start wird nach einem Namen gefragt.

Verwenden von: Java Plug-in 10.21.2.11 Verwenden von JRE Version 1.7.0_21-b11 Java HotSpot (TM) Client VM

Ssurge
quelle

Antworten:

1

Sie müssen wahrscheinlich Ihre JAR-Datei signieren. Signierte Jars werden standardmäßig mit höheren Berechtigungen ausgeführt als nicht signierte. Wenn die Software auf dem Desktop ausgeführt wird, verwendet sie die Berechtigungen der lokalen Benutzer und kann in Dateien schreiben. Wenn sie jedoch auf einer Site platziert wird, kann auf dem lokalen System kaum etwas ausgeführt werden. seitdem Sie gesagt haben, dass Sie über Eclipse ausgeführt haben, hat sich Ihr Code geändert und die ursprüngliche Signatur ist nicht mehr gültig.

http://docs.oracle.com/javase/tutorial/deployment/jar/signing.html

Frank Thomas
quelle
Das ist das Problem! Wenn ich es auf dem Desktop laufen lasse, funktioniert es nicht. Es funktioniert auf der Website oder in Eclipse: DI wird sich mehr mit dem Signieren von Gläsern befassen, obwohl ich nicht sicher bin, was das überhaupt bedeutet! xD
Ssurge
Das Signieren einer ausführbaren Datei bedeutet lediglich, dass Sie eine kryptografische Signatur auf die Datei anwenden, die bestätigt, dass sie von einer bestimmten Person signiert wurde und dass sich der Inhalt der Datei seit dem Signieren nicht geändert hat. Wenn MS eine ausführbare Datei signiert und jemand diese Exe manipuliert, schlägt die Signaturvalidierung fehl und Sie wissen, dass die Exe nicht von MS stammt.
Frank Thomas
Ich habe immer noch keine Ahnung, wie ich etwas tun soll. Ich habe nachgeschlagen, aber keine Ahnung. Meine Datei ist eine .class-Datei ... Wie signiere ich sie?
Ssurge
In Eclipse können Sie Ihr Projekt als .jar exportieren. Es bietet auch einen Assistenten, mit dem Sie das Paket signieren können.
Frank Thomas
Hier ist ein Video-Tutorial zum Exportieren eines Glases von Eclipse: youtube.com/watch?v=RbhJ9sTMTD8
Frank Thomas