Java Applet startet im Browser nicht

Status
Nicht offen für weitere Antworten.

DrSeus

Mitglied
Hi Leute.. ich hab ein problem und zwar hab ich ein Applet gecoded (Mein erstes Applet) und ich wollte das nun mal im Browser testen.
Habs eingebunden aber wenn ich die Seite aufrufe kommt nur ein graues Feld und die JavaConsole spuckt das:

Code:
java.lang.reflect.InvocationTargetException
	at java.awt.EventQueue.invokeAndWait(Unknown Source)
	at jwebftp.StartJApplet.init(StartJApplet.java:76)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.awt.AWTPermission setAppletStub)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.applet.Applet.setStub(Unknown Source)
	at jwebftp.StartJApplet.initComponents(StartJApplet.java:215)
	at jwebftp.StartJApplet.access$100(StartJApplet.java:55)
	at jwebftp.StartJApplet$1.run(StartJApplet.java:78)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Wisst ihr wie ich das Applet zum laufen bekommen? Wär sehr wichtig
lg
DrSeus
 
Ich rufe php seiten damit auf
Java:
    public String readWebFile(String webURL){
        String returnString = "";
        URL url;
        try {
            url = new URL(webURL);
            URLConnection con = url.openConnection();
            InputStream is = con.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String s;
            while((s = reader.readLine()) != null)
            {
               returnString = s + "\n";
            }
            reader.close();

        } catch (IOException ex) {
            Logger.getLogger(StartJApplet.class.getName()).log(Level.SEVERE, null, ex);
        }
        return returnString;
    }

und lese bilder über url ein

Java:
    public void setImage(JLabel label,String galerieName,String imageName){
        
        //http://localhost/tmk/medien/gala/main_gala/libraries/thumb.display.php?max=128&img=galleries/Kopie%20von%20venezuela/033_angel_falls.jpg&c=1&sq=1
        ImageIcon icoBeispiel = null;
            try {
                icoBeispiel = new ImageIcon(ImageIO.read(new URL(localGalaURL+"/libraries/thumb.display.php?max=128&img=galleries/"+galerieName+"/"+imageName+"&sq=1")));
            } catch (IOException ex) {
                Logger.getLogger(StartJApplet.class.getName()).log(Level.SEVERE, null, ex);
            }
        label.setIcon(icoBeispiel);
    }

direkten zugriff auf das datei system hab ich glaub ich nicht gecodet
find auch beim durchschaun nichts dergleichen
 
Zuletzt bearbeitet:
Du wirst in diesem Fall sicher nicht um die Signierung deines Applets herumkommen. Ich hab mich gerade darüber informiert wie das genau geht, ich wollte nämlich selber schonmal ein Applet von mir signieren.

Als erstes musst du natürlich dein Programm ordnungsgemäß compilieren. Danach erzeugst du dein JAR-Archiv:
jar -cfe MeinApplet.jar package.Hauptklasse [alle benötigten Dateien]
Um dieses Signieren zu können, musst du mit keytool zuerst einen Schlüssel und ein Zertifikat erzeugen:
keytool -genkey -validity 9999 -alias MakeJava -dname "cn=Vorname Namename, c=de"
(Kennwort vergeben)

Zertifikat erstellen:
keytool -selfcert -validity 9999 -alias MakeJava -dname "cn=Vorname Namename, c=de"
(Kennwort eingeben)

Applet signieren:
jarsigner MeinApplet.jar MakeJava

Applet nochmal überprüfen:
jarsigner -verify -verbose MeinApplet.jar


Standardkonform wird dann das Applet mit diesem HTML-Code eingebunden:
HTML:
<object classid="java:package/Hauptklasse.class" archive="MeinApplet.jar" codetype="application/java" width="600" height="500">
	Dein Browser zeigt keine Applets an!
</object>
 
Zuletzt bearbeitet:
Sind die Consolenbefehle für Linux? und ich versteh des jetzt net ganz wieso und was genau signieren bringt bzw da is

und noch dazu verwende ich Netbeans is es möglich mit Netbeans das einfacher bzw in einem schritt zu machen?

lg DrSeus
 
Nein, diese Befehle funktionieren unter Windows genauso. Öffne einfach eine Eingabeaufforderung (DOS oder wenn verfügbar Windows Powershell) und gib die entsprechenden Befehle nacheinander ein. Die Programme jar, keytool und jarsigner sind im Sun JDK automatisch dabei. Mit Netbeans kenne ich mich nicht aus, aber ich denke dass damit zumindest die Erstellung des JARs automatisiert werden kann. Den Rest kannst du ja immer noch über ein Batch-Script ausführen (evtl. würde sich dieses sogar auch in NetBeans integrieren lassen)

Ein Applet muss immer dann signiert werden, wenn es Methoden verwendet die über die Beschränkungen der Sandbox hinausgehen (zB Zugriffe auf fremde Server oder auf das lokale Dateisystem). Bei einem signierten Applet bekommt der User ein Dialogfenster zu sehen, über das er erst bestätigen muss, dass dieses Applet ausgeführt werden darf.
 
Zuletzt bearbeitet:
Ahhhaa =) *verstanden hab* und bei NetBeans gibts net zufällig so a Häckchen? dmait i des net bei jedem mal testen machen muss?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben