zuerst einmal: ich bin absoluter Neuling in sachen JAVA.
Jedoch brauche ich unbedingt ein Online FTP-Upload Applet.
Dazu habe ich mir folgendes Applet runtergeladen: ZUpload
Der Aufbau der "ZUpload.java" ist eigentlich relativ einfach für mich zuverstehn. Ich habe versucht mittels "javac" die ZUpload.java zu einer *.class Datei zu kompilieren.
D:\ZUpload>javac ZUpload.java
Note: ZUpload.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Er erstellt auch eine *.class Datei (8 KB) die jedoch leider nicht funktioniert. Die *.class Datei im *.jar Archiv z.B. ist 9 KB und nicht 8 KB groß.
Also wenn ich die sample.html mit der ZUpload.jar öffne funktionierts einwandfrei.
Ersetze ich meine *.class Datei durch die in der *.jar Datei und öffne dann die sample.html wird nur ein Fenster mit nem rotem "X" angezeigt (sprich er kanns nicht laden).
(Die sample.html usw. befinden sich alle oben im Link)
Ich weiß. Das funkioniert ja auch alles. Nur möchte ich die ZUpload.class bzw. ZUpload.java gerne ein wenig abändern. Und das funkioniert irgendwie nicht.
Nach 10 Beiträgen bekommen wir endlich den Hinweis, dass du das Applet ändern möchtest.
DAS hat ja gedauert...
Aber nun sollen wir auch noch raten, was du machen möchtest... :roll:
Hm naja warum sollte ich die sonst neu kompilieren?
Aber du hast Recht hatte ich mich wohl unklar ausgedrückt. Entschuldigung!
Ändern möchte ich eigentlich nur die Beschriftungen der Buttons.
Nur wenn ich "meine" ZUpload.java dann kompiliere und durch die originale im jar-Archiv austausche funktioniert es nicht mehr (obwohl ich nur die Beschriftung der Buttons geändert habe!).
Du wirst das Applet (jar-Datei) wohl signieren müssen, wenn du die Jar-Datei verändert oder neu erzeugt hast.
Ein Blick in die Java-Console verrät dir, warum nichts geht.
Applets dürfen sich nur zu dem Rechner verbinden, von dem sie heruntergeladen wurden.
Zum Signieren findest du in der FAQ Hilfestellung.
java.lang.SecurityException: SHA1 digest error for ZUpload.class
at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
at sun.misc.Resource.getBytes(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
er fragt noch nicht einmal ob ich das unsignierte Teil runterladen will.
Ich vermute das es irgendwie daran liegt das er das net Package nicht findet. Kann das vielliecht jemand mal bei sich ausprobieren?
In der Manifestdatei werden die Schlüssel für deine Klassen gespeichert, um Manipulation zu verhindern.
Und genau das hast du ja gemacht. Du hast die ZUpload.class ausgetauscht. Der Schlüssel stimmt nicht mehr überein. Der Benutzer soll vor manipuliertem/unsigniertem Code geschützt werden. Oder warum meinst du, wird dier eine SecurityException geworfen? :roll:
Die Jar-Datei muss erneut signiert werden.