Copy/Paste funktioniert nicht in einem signierten Applet
Habe ich eine unterzeichnet applet (die überprüft, richtig mit jarsigner
), die aus irgendeinem Grund nicht erlauben kopieren und einfügen aus der Zwischenablage in ein JTextField
trotz der Dokumentation sagt mir, dass es funktionieren soll für signierte applets.
Desweiteren habe ich mir andere applets, die signierte mit dem gleichen keyfile, lassen Sie mich kopieren und einfügen von text. Ich habe gesucht hoch und niedrig auf dem internet und kann nicht scheinen, finden alle Hinweise. Was macht mich ziehe meine Haare ist, dass es scheint keine Möglichkeit zu Debuggen (keine Ausgabe in der Konsole - keine Ausnahmen ausgelöst).
Hat jemand irgendwelche Ideen auf, wie kann ich Debuggen, um herauszufinden, warum Java nicht mag diese bestimmte applet?
Vielen Dank für die Anregungen!
InformationsquelleAutor user1098932 | 2011-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, es stellt sich heraus, mit dem release des Java Plug-in 1.6.0_24 im Februar 2011, kopieren und einfügen aus der Zwischenablage wurde als eine Sicherheitslücke und deaktiviert. Sie können kopieren und einfügen ZWISCHEN Anwendungen. Aber wenn Sie versuchen, etwas von Ihrem Haupt-Zwischenablage, es kann nicht kopiert werden.
Also es gibt ein paar Optionen für einen workaround. Sie können ein Rollback zu einer früheren version des plug-in. Das wird funktionieren, aber die Chancen sind alle zukünftigen Versionen wird noch immer kopieren und einfügen deaktiviert, so dass Sie nie in der Lage sein, zu aktualisieren.
Ist die andere alternative, um einen benutzerdefinierten java-security-policy-Datei, die ermöglicht den Zugriff auf die Zwischenablage des Systems wieder.
Zuerst suchen Sie Ihren lokalen Java-Security-Policy-Datei. Die Datei namens java.Politik und sollte in der lib\security-Ordner der Java-installation. Auf Windows 7, es kann hier gefunden werden C:\Program Files (x86)\Java\jre6\lib\security.
Kopieren Sie diese Datei in Ihren home-Ordner (ex. C:\Users\Kyle).
Benennen Sie die Datei um .java.Politik (beachten Sie den Punkt am Anfang).
Bearbeiten Sie die Datei in einem text-editor. Suchen Sie diese Zeile des Textes:
Fügen Sie die folgende Zeile direkt unterhalb es so:
Speichern Sie die Datei.
Schließen Sie alle offenen Browser und sicherzustellen, dass Java wird nicht ausgeführt, bevor die Tests.
Quelle: http://blogs.oracle.com/kyle/entry/copy_and_paste_in_java
Welche version des java-plugin benutzt du? Welchen browser Sie testen dies mit? Sie erhalten eine Eingabeaufforderung zu erlauben/unterbinden der copy/paste-service? Haben Sie überprüft, aus der clipService demo? pscode.org/jws/api.html#cbs
Dies ist ein applet bereitgestellt, das über viele JVMs in mehreren Unternehmen. Ich derzeit laufen 1.6.0_26 und ich habe nicht dazu aufgefordert werden, um zu erlauben/unterbinden der copy/paste-service. Wenn ich code hinzufügen, um zu behandeln, einen Zugriff auf die Zwischenablage erlaubt es mir und ich kann es einfügen in das Feld ein.
Ich habe das gleiche problem. Ich fügte hinzu, accessClipboard zu meiner Politik. Ich habe mein applet auch (aber es ist self-sign, die nicht vertrauenswürdig-Zeichen). Ich denke, es wird ok, aber Zugriff verweigert " - Fehler immer noch Auftritt. Einige blogs erzählte mir, dass self-sign-applet arbeiten kann die Seite sandbox entwickeln Umwelt (in diesem Fall mein Rechner). Können Sie mir sagen, es ist wahr?
Warum heißt es
properies
nichtproperties
, und nochproperies
imjava.policy
DateiInformationsquelleAutor Dennis
Neben Dennis' übersicht finden Sie Kopieren in sand-boxed-app. in 1.6.0_24+ auf OTN.
Siehe auch
Das problem ist eine komplexe & subtiler, die ich nicht den Anspruch, vollständig zu verstehen. Es war am besten erklärt Sami Koivu blog-Eintrag am Mehrere Java-Zwischenablage, Schwachstellen bei Applets (verlinkt von der OTN-thread). Leider, scheint, was zu verpassen, von der Kyle blog-Eintrag, sowie Dennis' Antwort (wie auch die meisten Leute Lesen diesen thread, scheinbar) , ist, dass es reparierbar mit der
ClipboardService
. 🙁ja, bewusst Sami ' s blog und ClipboardService - aber er spricht
Auch einem vertrauenswürdigen applet (in der Regel) haben eine sand-box. Dinge wie
System.exit(n)
sollte nicht aufgerufen werden, in einem applet, immer. Zu welchen Problemen dies führen könnte, die aufgrund einer trusted - applet mit dem clip-board genau, muss ich zugeben, weiß ich nicht. Die beste Erklärung, die ich anbieten kann, ist, dass Sie vielleicht die Einnahme der Haltung - Better safe than sorry.guter Punkt - danke für deine Geduld 🙂
InformationsquelleAutor Andrew Thompson
Ich bin mir nicht sicher, warum, aber die JTextField-Objekt das ich verwende, scheint nicht richtig angeschlossen zu den wichtigsten Veranstaltungen, die (vielleicht, weil ich habe einen FocusListener?) - aber indem Sie den folgenden code:
...erlaubt mir, mich einfügen in das Feld ein.
InformationsquelleAutor user1098932